Python的Unicode支持
1.内建的unicode()函数
Unicode的工厂方法,同Unicode字符串操作符(u / U)的工作方式很类似,它接受一个string做参数,返回一个Unicode字符串。
2.内建的decode()/encode()方法
decode()和encode()内建函数接受一个字符串做参数返回该字符串对应的解码后/编码后的字符串。decode()和encode()都可以应用于常规字符串和Unicode字符串。decode()方法是在Python2.2以后加入的。
3.Unicode 类型
Unicode字符串对象是basestring的子类、用Unicode()工厂方法或直接在字符串前面加一个u或者U来创建实例。支持Unicode原始字符串,只要在你的字符串前面加一个ur或者UR就可以了。
4.Unicode 序数
标准内建函数ord()工作方式相同,最近已经升级到可以支持Unicode对象了。内建的unichr()函数返回一个对应的Unicode字符(需要一个32位的值);否则就产生一个ValueError异常。
5.强制类型转换
混合类型字符串操作需要把普通字符串转换成Unicode对象。
6.异常
UnicodeError异常是在exceptions模块中定义的,ValueError的子类。所有关于Unicode编解码的异常都要继承自UnicodeError。详见encode()函数。
7.标准编码
8.RE 引擎对Unicode的支持
编码描述
utf-8 变量长度为8的编码(默认编码)
utf-16 变量长度为16的编码(大/小端)
utf-16-le 小端UTF-16编码
utf-16-be 大端UTF-16编码
ascii7 7位ASCII码表
iso-8859-1 ISO 8859-1(Latin-1) 码表
unicode-escape (定义见Python Unicode构造器)
raw-unicode-escape(定义见Python Unicode 构造器)
native Python用的内部格式
9.字符串格式化操作符
对于Python的格式化字符串的操作符,%s把Python字符串中的Unicode对象执行了str(u)操作,所以,输出的应该是u.encode(默认编码)。如果格式化字符串是Unicode对象,所有的参数都将首先强制转换成Unicode然后根据对应的格式串一起进行格式转换。数字首先被转换成普通字符串,然后在转换成Unicode。Python字符串通过默认编码格式转化成Unicode。Unicode对象不变,所有其他格式字符串都需要像上面这样转化,下面是例子。
u"%s %s" % (u"abc", "abc") ⇒ u"abc abc"
阅读(1407) | 评论(0) | 转发(0) |