Luo Weifeng 2011-4-21
转载请保留:http://blog.csdn.net/luoweifeng1989/archive/2011/04/21/6338287.aspx
Python 默认编码是ASCII编码。可通过在Python脚本中第一行或第二行添加coding指示行来改变。
#!/usr/bin/env python # -*- coding: utf-8 -*-
Python内建的Unicode字符构造函数,它将一个Integer数据转换成相对应的长度为1的Unicode string。例:
>>> print unichr(0x80c3) 胃
正好与unichr()相反,它将一个长度为1的Unicode String转换成相应的Integer.例:
>>> hex(ord(unichr(0x80c3))) '0x80c3'
所有的Unicode字符串都是unicode 类的实例,这个类与 str 都是 basestring的子类。Unicode类的构造函数:unicode(string[, encoding, errors])。这里string是一个ascii字符串,encoding说明解码方式(对于第一个参数),Errors说明处理出错规则。例:
>>> print unicode('文件',encoding='gb2312') 文件
或者在代码里直接编码:
s = u”李玉玲”
函数签名:.encode([encoding], [errors='strict']) 。 python内部是是使用 unicode处理编码的,所以要使用特定编码转换前先将他转换成unicode编码,再使用encoding转化成相应编码。encoding指定编码规则。例:
>>> unicode('文件',encoding='gb2312').encode('gb2312') '/xce/xc4/xbc/xfe'
注意:如果字符串不是unicode编码的会出错。可以预先判定一下:
isinstance(s,unicode)
函数签名:.decode([encoding], [errors])将字符串本身。 将encoding指定的编码转换成unicode编码字符串。例:
>>> s = '中文'.decode('gb2312') >>> isinstance(s,unicode) True
repr
函数用来取得对象的规范字符串表示。
>>> print repr('李玉玲') '/xc0/xee/xd3/xf1/xc1/xe1' >>> type (repr('李玉玲')) <type 'str'>
使用codec模块提供了对应于标准文件库的一系列操作。例:
import codecs f = codecs.open('unicode.rst', encoding='utf-8') for line in f: print repr(line)