python 字符编码

python 中英文混合时编码很重要,处理方法如下: >>># coding=utf-8 >>>'abc中文'.encode('gb18030') >>>'abc中文'.encode('gbk') >>>'abc中文'.decode('GBK') >>>unicode('abc中文') >>>unicode ('abc中文', 'utf-8') 一、python中与编码有关的函数 1、encode:由unicode编码转换为指定的其他编码。如:txt.encode("gb2312")则txt的表示为unicode->gb2312;txt.encode("utf-8")为unicode->utf-8转换。 2、decode:由指定的其他编码转换为unicode编码。如:txt.decode("gb2312")则txt的表示为gb2312->unicode;txt.decode("utf-8")为utf-8->unicode转换。 3、unicode:与decode相同。如:unicode(txt,"gb2312") 则txt的表示为gb2312->unicode转换。 当然了unicode是不能和ASCII之间转换的 所以不难理解,content1实际是utf8格式的编码,转换为unicode之后就正确显示了,但是为什么直接打印utf8格式的字符串却不行呢?我也不知道哦,那么我们再来试试下面这种方式 python编码处理:unicode字节串转成中文 各种字符串举例说明 编码问题一直是很头痛的问题: 当字符串是:'\u4e2d\u56fd' >>>s=['\u4e2d\u56fd','\u6e05\u534e\u5927\u5b66'] >>>str=s[0].decode('unicode_escape')  #.encode("EUC_KR") >>>print str 中国 当字符串是:' 东亚学团一中' >>>print unichr(19996) 东 ord()支持unicode,可以显示特定字符的unicode号码,如: >>>print ord('A')65 只要和Unicode连接,就会产生Unicode字串。如: >>> 'help''help'>>> 'help,' + u'python' u'help,python' 对于ASCII(7位)兼容的字串,可和内置的str()函数把Unicode字串转换成ASCII字串。如: >>> str(u'hello world')'hello world' 对几个概念的理解: ASCII码:    用数据字 对应 相应的字符 而中文 就是区位码对应汉字    如:“好” 的ASCII码为: 22909 unicode 编码 每个国家分一块。   它有UTF-8、UTF-16、UTF-32等形式 中文范围 4E00-9FBF:  这个范围内有 gbk,gb2312, utf-8是基于unicode的 国际化的场合适合使用 gb2312和gb2312都是国标码 出现的较早 主要用于编解码常用汉字     url中替换百分号 >>> import urllib >>> urllib.quote('中文') '%E4%B8%AD%E6%96%87' >>> urllib.unquote('%E4%B8%AD%E6%96%87') '\xe4\xb8\xad\xe6\x96\x87' >>> print urllib.unquote('%E4%B8%AD%E6%96%87') 中文   如果不行,可能要转换成unicode先 s = urllib.unquote('%E4%B8%AD%E6%96%87') uni = str.decode(s) os.chdir(uni)
posted @ 2012-10-25 10:38  adodo1  Views(161)  Comments(0Edit  收藏  举报