今天开发帮忙写了一个读取windows文件签名的小程序,并把签名信息写到txt文件中,用UE打开发现居然是UCS-2 LE编码,几经查找,如下是读取的文本。
>>> a
'\xff\xfe.\x00/\x00\\\x002\x000\x001\x006\x000\x009\x002\x003\x00\\\x00C\x00W\x0
0C\x00C\x00S\x00e\x00t\x00u\x00p\x00.\x00e\x00x\x00e\x00-\x00-\x00-\x00S\x00i\x0
0g\x00n\x00a\x00t\x00u\x00r\x00e\x00N\x00a\x00m\x00e\x00:\x00\r\x00\n'
>>> chardet.detect(a)
{'confidence': 1.0, 'encoding': 'UTF-16LE'}
用python解析:
# -*- coding: cp936 -*-
import os
import codecs
def parseFile(filepath):
try:
lineList = [] # 存放每一行的内容
with open(filepath, 'r') as fp:
line = fp.read()
if line.startswith('\xff\xfe'):
encoding = 'utf-16-le'
fp2 = codecs.open(filepath, 'r', encoding)
lineList = fp2.readlines()
fp2.stream.close()
for i in lineList: # 打印每一行
print i,
except Exception,ex:
print '[ERROR]--',ex
if __name__ == '__main__':
filepath = './Signature.txt'
parseFile(filepath)