这篇文章主要介绍了 Python 编码类型转换方法, 结合实例形式详细分析了 Python 针对各种常见编码的转码与解码等操作技巧, 需要的朋友可以参考下
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
本文实例讲述了 Python 编码类型转换方法。分享给大家供大家参考,具体如下:
1:Python 和 unicode
为了正确处理多语言文本,Python 在 2.0 版后引入了 Unicode 字符串。
2:python 中的 print
虽然 python 内部需要将文本编码转换为 unicode 编码来处理,而终端显示工作则由传统的 Python 字符串完成(实际上,Python 的 print 语句根本无法打印出双字节的 Unicode 编码字符)。
python 的 print 会对输出的 unicode 编码(对其它非 unicode 编码,print 会原样输出)做自动的编码转换 (输出到控制台时),而文件对象的 write 方法就不会做,因此,当一些字符串用 print 输出正常时,write 到文件确不一定和 print 的一样。
在 linux 下是按照环境变量来转换的,在 linux 下使用 locale 命令就可以看到。print 语句它的实现是将要输出的内容传送了操作系统,操作系统会根据系统的编码对输入的字节流进行编码。
- >>>str='学习python'
- >>> str
- '\xe5\xad\xa6\xe4\xb9\xa0python' #asII编码
- >>> print str
- 学习python
- >>> str=u'学习python'
- >>> str ####unicode编码
- '\xe5u\xad\xa6\xe4\xb9\xa0python'
3: python 中的 decode
将其他字符集转化为 unicode 编码(只有中文字符才需要转换)
- >>> str='学习'
- >>> ustr=str.decode('utf-8')
- >>> ustr
- u'\u5b66\u4e60'
这样就对中文字符进行了编码转换,可用 python 进行后续的处理;(如果不转换的话,python 会根据机器的环境变量进行默认的编码转换,这样就可能出现乱码)
4:python 中的 encode
将 unicode 转化为其它字符集
- >>> str='学习'
- >>> ustr=str.decode('utf-8')
- >>> ustr
- u'\u5b66\u4e60'
- >>> ustr.encode('utf-8')
- '\xe5\xad\xa6\xe4\xb9\xa0'
- >>> print ustr.encode('utf-8')
- 学习
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0325/240673.html