我打开的文件中的奇怪字符

2024-06-15 02:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中打开了一个.dat文件,但它似乎已损坏� 每次之后<;性格。 我的开场白是:

    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。请帮助


Tags: 文件ltreadlineopenutfencodingdat性格
1条回答
网友
1楼 · 发布于 2024-06-15 02:19:23

您有小端排序的UTF-16数据,而不是UTF-8。文件是使用错误的编码保存的,或者XML声明中的encoding信息是错误的

使用utf-16-le编解码器将其解码为UTF-16:

DataList = DataList.decode(encoding='utf-16-le')

您需要使用utf-16-le编解码器而不是普通的utf-16,因为Byte Order Mark丢失了

相关问题 更多 >