Python 字符编码转换要点
2012-09-13 11:02
453 查看
Python 字符编码转换要点
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之间的转换
比如:
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t
=
'
长城
'
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
'
\xb3\xa4\xb3\xc7
'
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t.decode(
'
gb2312
'
).encode(
'
utf-8
'
)
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
'
\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文件中指定,比如
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
import
sys
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
sys.setdefaultencoding(
'
utf-8
'
)
参考资料:http://blog.csdn.net/lf8289/article/details/2465196
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之间的转换
比如:
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t
=
'
长城
'
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
'
\xb3\xa4\xb3\xc7
'
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
>>>
t.decode(
'
gb2312
'
).encode(
'
utf-8
'
)
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
'
\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文件中指定,比如
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
import
sys
![](http://www.blogjava.net/Images/OutliningIndicators/None.gif)
sys.setdefaultencoding(
'
utf-8
'
)
参考资料:http://blog.csdn.net/lf8289/article/details/2465196
相关文章推荐
- python——将图片转换为字符编码(linux版的)
- Python常见字符编码及其之间的转换
- python实现字符编码的转换
- bash下python对字符编码的转换
- 字符编码和python使用encode,decode转换utf-8, gbk, gb2312的问题
- python中json和字符编码的转换
- 字符编码和python使用encode,decode转换utf-8, gbk, gb2312
- Python:[转] 字符串大小写的转换
- mysql-python模块的内存泄露和中文字符编码问题
- python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- Python字符编码详解
- python实现将文本转换成语音的方法
- python将ip地址转换成整数的方法
- Python列表、元组、集合、字典的区别和相互转换
- 关于php开发中的字符编码问题总结的几个要点
- 一个转换文件字符编码的bash脚本
- 使用sublimeText开发python,使用lxml库部分要点
- Python-字符编码详解
- python time和datetime的常用转换处理
- Python数据类型转换及一些操作