使用 python 2.7,我以 unicode 读取并以 utf-16-le 写入。大多数字符都被正确解释。但有些不是,例如 u'\u810a',也称为unichr(33034)。以下代码代码写不正确:
import codecs
with open('temp.txt','w') as temp:
temp.write(codecs.BOM_UTF16_LE)
text = unichr(33034) # text = u'\u810a'
temp.write(text.encode('utf-16-le'))
但是,当在上面替换时,这些东西中的任何一个都可以使代码正常工作。
unichr(33033) 和 unichr(33035) 工作正常。
'utf-8' 编码(无 BOM,字节顺序标记)。
如何识别无法正确写入的字符,以及如何使用 BOM 编写一个“utf-16-le”编码文件来打印这些字符或进行一些替换?