我在 Python 2.7.2 中有一个字符串说 u"\u0638"。当我将其写入文件时:
f = open("J:\\111.txt", "w+")
f.write(u"\u0638".encode('utf-16'))
f.close()
在十六进制中它看起来像:FF FE 38 06 当我将这样的字符串打印到标准输出时,我会看到:'\xff\xfe8\x06'。
问题: 输出到stdout的字符串中的\x38在哪里?换句话说,为什么输出到标准输出的字符串不是'\xff\xfe\x38\x06'?
如果我将字符串写入文件两次:
f = open("J:\\111.txt", "w+")
f.write(u"\u0638".encode('utf-16'))
f.write(u"\u0638".encode('utf-16'))
f.close()
文件中的十六进制表示包含字节顺序标记 (BOM) \xff\xfe两次:FF FE 38 06 FF FE 38 06
我想知道避免在 UTF-16 编码字符串中写入 BOM 的技术是什么?