python字符编码

来源:互联网 发布:mac 进程管理器 编辑:程序博客网 时间:2024/06/05 12:01
字符编码




莫尔斯电码的代码包括五种:点(.)、划(-)、每个字符间短的停顿(在点和


划之间的停顿)、每个词之间中等的停顿、以及句子之间长的停顿。


python2默认的编码是ascii,通过encode可以将对象的编码转换为指定编码格式


(称作“编码”),而decode是这个过程的逆过程(称作“解码”)。


>>> a = "中"
>>> type(a)
<type 'str'>
>>> a
'\xe4\xb8\xad'
>>> len(a)
3


>>> b = a.decode() #通过decode函数,将字节串转变为字符串
>>> b
u'\u4e2d'
>>> type(b)
<type 'unicode'>
>>> len(b)
1
并且这个字符串是按照unicode编码的。在unicode编码中,一个汉字对应一个字


节符,这时候度量它的长度就是1.


反过来,一个unicode编码的字符串,也可以转换为字节串。
>>> c = b.encode('utf-8')
>>> c
'\xe4\xb8\xad'
>>> type(c)
<type 'str'>
>>> c == a
True






python中如何避免中文是乱码


首先,提倡使用utf-8编码方案,因为它跨平台不错。
经验一:在开头声明:
# -*- coding:utf-8 -*-


经验二:遇到字符(节)串,立刻转化为unicode,不要用str(),直接使用


unicode()
unicode_str = unicode('中文', encoding='utf-8')
print unicode_str.encode('utf-8')


经验三:如果对文件操作,打开文件的时候,最好用codecs.open,替代open
import codecs
codecs.open('filename',encoding='utf8')


经验四:声明字符串直接加u,声明的字符串就是unicode编码的字符串
a=u"中"

0 0
原创粉丝点击