python 字符编码
python 中英文混合时编码很重要,处理方法如下:
>>># coding=utf-8
>>>'abc中文'
.encode(
'gb18030'
)
>>>'abc中文'.encode('gbk')
>>>'abc中文'.decode('GBK')
>>>unicode('abc中文')
>>>unicode ('abc中文', 'utf-8')
一、python中与编码有关的函数
1、encode:由unicode编码转换为指定的其他编码。如:txt.encode("gb2312")则txt的表示为unicode->gb2312;txt.encode("utf-8")为unicode->utf-8转换。
2、decode:由指定的其他编码转换为unicode编码。如:txt.decode("gb2312")则txt的表示为gb2312->unicode;txt.decode("utf-8")为utf-8->unicode转换。
3、unicode:与decode相同。如:unicode(txt,"gb2312") 则txt的表示为gb2312->unicode转换。
当然了unicode是不能和ASCII之间转换的
所以不难理解,content1实际是utf8格式的编码,转换为unicode之后就正确显示了,但是为什么直接打印utf8格式的字符串却不行呢?我也不知道哦,那么我们再来试试下面这种方式
python编码处理:unicode字节串转成中文 各种字符串举例说明
编码问题一直是很头痛的问题:
当字符串是:'\u4e2d\u56fd'
>>>s=['\u4e2d\u56fd','\u6e05\u534e\u5927\u5b66']
>>>str=s[0].decode('unicode_escape') #.encode("EUC_KR")
>>>print str
中国
当字符串是:' 东亚学团一中'
>>>print unichr(19996)
东
ord()支持unicode,可以显示特定字符的unicode号码,如:
>>>print ord('A')65
只要和Unicode连接,就会产生Unicode字串。如:
>>> 'help''help'>>> 'help,' + u'python' u'help,python'
对于ASCII(7位)兼容的字串,可和内置的str()函数把Unicode字串转换成ASCII字串。如:
>>> str(u'hello world')'hello world'
对几个概念的理解:
ASCII码: 用数据字 对应 相应的字符
而中文 就是区位码对应汉字 如:“好” 的ASCII码为: 22909
unicode 编码 每个国家分一块。 它有UTF-8、UTF-16、UTF-32等形式
中文范围 4E00-9FBF: 这个范围内有 gbk,gb2312,
utf-8是基于unicode的 国际化的场合适合使用
gb2312和gb2312都是国标码 出现的较早 主要用于编解码常用汉字
url中替换百分号
>>> import urllib
>>> urllib.quote('中文')
'%E4%B8%AD%E6%96%87'
>>> urllib.unquote('%E4%B8%AD%E6%96%87')
'\xe4\xb8\xad\xe6\x96\x87'
>>> print urllib.unquote('%E4%B8%AD%E6%96%87')
中文
如果不行,可能要转换成unicode先
s = urllib.unquote('%E4%B8%AD%E6%96%87')
uni = str.decode(s)
os.chdir(uni)