Edw*_*per 8 unicode byte-order-mark file-type utf-16 character-encoding
看起来用于UTF16-LE和UTF-32LE的字节顺序标记之间存在歧义.特别是,考虑一个包含以下8个字节的文件:
FF FE 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)
如何判断此文件是否包含:
Unicode BOMs在这里描述:http://unicode.org/faq/utf_bom.html#bom4但是没有讨论这种歧义.我错过了什么吗?
Mar*_*ers 11
顾名思义,BOM仅告诉您字节顺序,而不是编码.您必须首先知道编码是什么,然后您可以使用BOM来确定最小或最重要的字节是否是多字节序列的第一个.
BOM的一个幸运的副作用是,如果您不知道它,有时也可以使用它来猜测编码,但这不是它的设计目的,它不能替代发送正确的编码信息.
这是明确的. FF FE适用于UTF-16LE,FF FE 00 00表示UTF-32LE.没有理由认为FF FE 00 00可能是UTF-16LE,因为UTF是为文本设计的,用户不应该在文本中使用NUL字符.毕竟,你最后一次打开一个十六进制编辑器并在文本文档中插入几个00字节的时候是什么时候?^ _ ^
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |