本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于python中转换模块codecs的讲解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
0、编码
编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
1 2 |
|
注意事项:
s=‘中文’ 如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。
在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。
如果字符串是这样定义: s=u’中文’ 则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。只需要直接使用encode方法将其转换成指定编码即可
如果一个字符串已经是unicode了,再进行解码则将出错,因此通常要对其编码方式是否为unicode进行判断isinstance(s, unicode) #用来判断是否为unicode
1、查看编码方式
(1)对于我们经常使用的记事本,“文件” -> “另存为”,可查看到当前的编码方式。
(2)用notepad++打开,点击“菜单栏” -> “格式”可以查看到。
(3)UltraEdit:
不同编码的文本,是根据文本的前两个字节来定义其编码格式的,定义如下:
ANSI: 无格式定义;
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
这样通过前面两个字节就可以判定出文件的具体格式了。
2、python编码
当python要做编码转换的时候,会借助于内部的编码,转换过程是这样的:
原有编码 -> 内部编码 -> 目的编码
python的内部是使用unicode来处理的,但是unicode的使用需要考虑的是它的编码格式有两种,一是UCS-2,它一共有65536个码位,另一种是UCS-4,它有2147483648g个码位。
判断安装的python是用什么编码方式:
1 2 |
|
如果输出的值为65535,那么就是UCS-2,如果输出是1114111就是UCS-4编码。
转换成内部码:
1 2 3 4 5 6 7 8 9 |
|
输出:
相关阅读 >>
更多相关阅读请进入《Python》频道 >>
Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。