当前位置:天才代写 > tutorial > Python教程 > Python 字符编码转换法门

Python 字符编码转换法门

2017-11-02 08:00 星期四 所属: Python教程 浏览:53

python 有str object 和 unicode object 两种字符串, 都可以存放字符的字节编码,可是他们是差异的type,这一点很重要,也是为什么会有encode 和decode。

encode 和 decode在pyhton 中的意义可暗示为

 encode

unicode ————————-> str

unicode <————————–str

 decode

几种常用法:

str_string.decode('codec') 是把str_string转换为unicode_string, codec是源str_string的编码方法

unicode_string.encode('codec') 是把unicode_string 转换为str_string,codec是方针str_string的编码方法

str_string.decode('from_codec').encode('to_codec') 可实现差异编码的str_string之间的转换

好比:

>>> t='长城'

>>> t

'\xb3\xa4\xb3\xc7'

>>> t.decode('gb2312').encode('utf-8')

'\xe9\x95\xbf\xe5\x9f\x8e'

str_string.encode('codec') 是先挪用系统的缺省codec去把str_string转换为unicode_string,然后用encode的参数codec去转换为最终的str_string. 相当于str_string.decode('sys_codec').encode('codec')。

unicode_string.decode('codec') 根基没有意义,unicode 在python里只用一种unicode编码,UTF16可能UTF32(编译python时就已经确定),没有编码转换的需要。 

注:缺省codec在site-packages下的sitecustomize.py文件中指定,好比

import sys

sys.setdefaultencoding('utf-8')

 

    关键字:


天才代写-代写联系方式