在做字符转码的时候前面多了个 FFFE,这是什么意思呢?
data = [@"好" dataUsingEncoding:NSUTF16StringEncoding];//data = <fffe7d59>
上网一查原来是BOM(byte-order mark)字节顺序标记,
EF BB BF UTF-8
FE FF UTF-16 (big-endian)
FF FE UTF-16 (little-endian)
00 00 FE FF UTF-32 (big-endian)
FF FE 00 00 UTF-32 (little-endian)
FFFE表示UTF-16的little-endian,这又是什么意思呢?
Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
那么“好”的字符编码应该就是597d。