最近所做的项目中涉及到很多用Python处理文档的问题,被其中的编码问题弄得十分头大。个人做了一些研究,在此记录一下。
关于各种字符编码在此不赘述,可以参看廖雪峰:字符串与编码
1、中文字符串报错
- str = "哈哈"
- print str
- #运行结果报错:SyntaxError: Non-ASCII character '\xe5'
- # -*- coding: UTF-8 -*-
- str = "哈哈"
- print str#哈哈
- # -*- coding: utf-8 -*-
- str = u'哈'
- print str #输出str的unicode码显示哈
- print repr(str) #输出str的unicode码:u'\u54c8'
- u = str.encode('utf8')#将str由unicode编码成utf8
- print u #输出str的utf8码显示:哈
- print repr(u) #输出str的utf8编码:'\xe5\x93\x88'
- #将str用其他编码方式进行编码
- s = u.decode('utf8').encode('gbk')
- print s #输出str的gbk码显示:��
- print repr(s) #输出str的gbk编码:'\xb9\xfe'
- list = ['昨天','今天','明天']
- print list #['\xe6\x98\xa8\xe5\xa4\xa9', '\xe4\xbb\x8a\xe5\xa4\xa9', '\xe6\x98\x8e\xe5\xa4\xa9']
- print '[' + ','.join("'""'" + x +"'" for x in list) + ']' #['昨天','今天','明天']