• 4317阅读
  • 1回复

关于字符编码的问题... [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-18

我们知道TXT文档有一个细节要注意:

以下三种编码方式的TXT文档,都有开始字节作为编码方式的标识,应该相当于文件头吧...

FF、FE(Unicode编码)
,FE、FF(Unicode big endian编码),
EF、BB、BF(UTF-8编码)


那么,我们把某种编码方式的字符得字节流,存储到硬盘的时候,需不需要加上这些字节?

例如,我要把编码方式为Unicode的"我们"两个字符,存储到硬盘的时候,如果不在前面加上FF.FE,那么,

notepad.exe应该是不能正确显示"我们"两个字符?


是否这样?






离线dbzhang800

只看该作者 1楼 发表于: 2010-05-18
这个是 BOM,用来表示字节序的。

如果你给别人传一个 utf16 或 utf32的文件,如果前面没有BOM,对方将无法判断是 big endian、还是little endian
如果你传文件的同时,告诉对方,我给你传的是 utf16-be 的文件,由于字节序已知,就没必要加BOM

UTF8 不存在字节序的问题,EF BB BF 只用来表示编码类型 (一般情况下这个也都是不加的)

另外提一下,不是3种,是5种: utf32-be utf32-le utf16-be utf16-le utf8
快速回复
限100 字节
 
上一个 下一个