相关文章推荐

今天开发帮忙写了一个读取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):
        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)
                    今天开发帮忙写了一个读取windows文件签名的小程序,并把签名信息写到txt文件中,用UE打开发现居然是UCS-2 LE编码,几经查找,如下是读取的文本。>>> a'\xff\xfe.\x00/\x00\\\x002\x000\x001\x006\x000\x009\x002\x003\x00\\\x00C\x00W\x00C\x00C\x00S\x00e\x00t\x00...
				
报错如下: UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 3298-3298: Non-BMP character not supported in Tk 翻译一下就是: Unicode编码错误:'UCS-2’编码器不能编码在3298-3298这个位置的字符类: Non-BMP 字符类在Tk中不被支持。 大致就是这么个意思,翻译的不一定准,但是大致意思就是某行代码让编译器出现了问题,不能编译了。 一个字符(byte)有8个二进制位(bit),每一位都是0或1,最多表示256个符号 ASCII码一共规定了128个字符的编码,即第一位为0,后7位来表示这128个符号 包括32个不能打印出来的控制符号和键盘上的96个字符 绿色(52):26个英文字符的大小写格式 红色(44):每个按键都有两种符号,例如1和! 蓝色(2):空格和退格 Base64 把一串二进制转换成另一种二进制串 把每三个8Bit的字节转换为四个6Bit(38=46=24),然后把6Bit再添两位高位0,组成四个
折腾了好久,终于搞定了。参考链接:python使用codecs模块进行文件操作-读写中英文字符 - CSDN博客 http://blog.csdn.net/chenyxh2005/article/details/72465758#t0代码:import os import codecs path = 'D:\\yangnian\\Project\\Test\\motor_control'#tx
以下是本人从网上找的,旨在让程序员能真正掌握编码以及解决相关的问题谈谈Unicode编码,简要解释UCSUTF、BMP、BOM等名词 这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题: 使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode...
 
推荐文章