utf-8和txt文件不能很好的区分,就算是记事本也无法很好的区分

来源:互联网 发布:怎么打开443端口 编辑:程序博客网 时间:2024/06/10 22:26

在win7上,新建一个txt文件,输入“联通”。关闭后打开会出现“��ͨ”。why。

txt文件编码格式

  • bom。微软为了正确判断文件格式,在Unicode编码格式的文件头部添加了bom信息。当程序读取文件内容的时候,首先会读到这个bom,然后根据bom来判断是那种UTF编码格式。

    utf-8 的bom的byte为 -17 -69 -65。网上许多程序都是以此来判断文件是否是UTF-8格式。但是,windows上的UTF-8编码格式的文本文件可以不带bom。也就是说这种方式适配性并不好。
    新建一个txt文件,输入“联通”。用程序读取后,其内容的byte为:-63 -86 -51 -88

  • UTF的bom编码

    UTF-8: EF BB BF
    UTF-16 : FF FE
    UTF-16 big-endian: FE FF
    UTF-32 little-endian: FF FE 00 00
    UTF-32 big-endian: 00 00 FE FF