Python编码处理

 

Python编码处理

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 -*- 

处理字节

Function unichr()

Python内建的Unicode字符构造函数,它将一个Integer数据转换成相对应的长度为1Unicode string。例:

>>> print unichr(0x80c3) 胃 

Function ord()

正好与unichr()相反,它将一个长度为1Unicode String转换成相应的Integer.例:

>>> hex(ord(unichr(0x80c3))) '0x80c3' 

 

字符串处理

Function unicode():

所有的Unicode字符串都是unicode 类的实例,这个类与 str 都是 basestring的子类。Unicode类的构造函数:unicode(string[, encoding, errors])。这里string是一个ascii字符串,encoding说明解码方式(对于第一个参数),Errors说明处理出错规则。例:

>>> print unicode('文件',encoding='gb2312') 文件

或者在代码里直接编码:

s = u”李玉玲” 

Function .encode()

函数签名:.encode([encoding], [errors='strict']) 。 python内部是是使用 unicode处理编码的,所以要使用特定编码转换前先将他转换成unicode编码,再使用encoding转化成相应编码。encoding指定编码规则例:

>>> unicode('文件',encoding='gb2312').encode('gb2312') '/xce/xc4/xbc/xfe'

 

注意:如果字符串不是unicode编码的会出错。可以预先判定一下:

isinstance(s,unicode)

 


Function .decode():

函数签名:.decode([encoding], [errors])将字符串本身。 将encoding指定的编码转换成unicode编码字符串。例:

>>> s = '中文'.decode('gb2312') >>> isinstance(s,unicode) True

 

Function :

repr函数用来取得对象的规范字符串表示。

>>> print repr('李玉玲') '/xc0/xee/xd3/xf1/xc1/xe1' >>> type (repr('李玉玲')) <type 'str'> 

文件处理

模块 Codec

使用codec模块提供了对应于标准文件库的一系列操作。例:

import codecs f = codecs.open('unicode.rst', encoding='utf-8') for line in f: print repr(line) 

 

 

你可能感兴趣的:(Python编码处理)