码迷,mamicode.com
首页 > 编程语言 > 详细

python转码要诀

时间:2015-09-08 12:49:11      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

python 有str object 和 unicode object 两种字符串, 都可以存放字符的字节编码,但是他们是不同的type,这一点很重要,也是为什么会有encode 和decode。

encode 和 decode在pyhton 中的意义可表示为

                                                                  encode
                                              unicode -------------------------> str
                                              unicode <--------------------------str
                                                                  decode
几种常用法:
str_string.decode(‘codec‘) 是把str_string转换为unicode_string, codec是源str_string的编码方式
unicode_string.encode(‘codec‘) 是把unicode_string 转换为str_string,codec是目标str_string的编码方式
str_string.decode(‘from_codec‘).encode(‘to_codec‘) 可实现不同编码的str_string之间的转换
比如:

技术分享>>> t=长城
技术分享
>>> t
技术分享
\xb3\xa4\xb3\xc7
技术分享
>>> t.decode(gb2312).encode(utf-8)
技术分享
\xe9\x95\xbf\xe5\x9f\x8e

str_string.encode(‘codec‘) 是先调用系统的缺省codec去把str_string转换为unicode_string,然后用encode的参数codec去转换为最终的 str_string. 相当于str_string.decode(‘sys_codec‘).encode(‘codec‘)。

unicode_string.decode(‘codec‘) 基本没有意义,unicode 在python里只用一种unicode编码,UTF16或者UTF32(编译python时就已经确定),没有编码转换的需要。 

注:缺省codec在site-packages下的sitecustomize.py文件中指定,比如

技术分享import sys
技术分享sys.setdefaultencoding(
utf-8)


python转码要诀

标签:

原文地址:http://my.oschina.net/chworld/blog/502661

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!