今天学习了python,作为一个新手,对python的编码问题仔细研究了一番,自己的理解如下:
1、python代码的文件是以ASCII编码存储,所以当python代码文件中有中文时(包括注释),文件开头都要加#coding=utf-8 或#coding=gbk。
2、python内部使用的都是Unicode编码运行,所以当要对中文的字符串进行处理的话就要将“步骤1”中的utf-8或者gbk转化成Unicode编码:decode("utf-8")或decode("gbk")。这样就可以随便处理,包括计算中文字符串的长度。
3、Windows下控制中使用的是gbk,所以要在Windows中输出中文,必须将“步骤2”中的Unicode编码转化成gbk:encode("gbk")
例1
#coding=gbk
b="中国".decode("gbk")#将gbk转换成代码unicode,可以随便处理(包括计算字符串长度)
print(len(b))
print(b.encode("gbk"))#输出时将unicode编码变成gbk编码输出
结果是:
2
中国
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
例2
#coding=utf-8
b="中国".decode("utf-8")#将utf-8转换成代码unicode,可以随便处理(包括计算字符串长度)
print(len(b))
print(b.encode("gbk"))#输出时将unicode编码变成gbk编码输出
结果是:
2
中国
其中例1,我感觉可以对python中的编码问题可以通用。