我在Python中打开了一个.dat文件但是在每次<之后它似乎被cor损坏了。字符。 我的开场代码是:
DataFileIn = open(datFileName, "r")
DataList = DataFileIn.readline()
DataList.decode(encoding='UTF-8',errors='strict')
logging.info( DataList )
DataFileIn.close()
我的输出是
INFO:......<�?xml version="1.0" encoding="UTF-8"?><�ETSParameterType><�BlobParameter><�CommissioningMode>0<�/CommissioningMode><�NightMode>0<�/NightMode><�SceneObjects>1<�/SceneObjects><�EffectObjects>0<�/EffectObjects> ...
当我在Notepad ++中打开文件时,它会说UCS-2 Little Endian,我希望它能说UTF-8。请帮忙。
答案 0 :(得分:1)
您有UTF-16数据,采用小端排序,而不是UTF-8。使用错误的编码保存文件,或者,XML声明中的encoding
信息是错误的。
使用utf-16-le
编解码器
DataList = DataList.decode(encoding='utf-16-le')
您需要使用utf-16-le
编解码器而不是普通utf-16
,因为Byte Order Mark丢失了。