您的位置:首页 > 编程语言 > Python开发

Python 中文编码问题小结

2016-08-08 14:43 513 查看

1. 下面的语句要放在代码开头,指定文件编码, 可以识别 脚本中的所有字符和中文。

# -*- coding:utf-8 -*-


2. codecd 编码转换

如果想要读取文本中的中文,需要借助于codecs的一套open方法,而不是内置的open。

#-*- coding:utf-8 -*-
print '我是'
import codecs

f=codecs.open("e:/python/test_data/chinese.txt")
content=f.read()
f.close()

if isinstance(content,unicode):
print content.encode('utf-8')
print "utf-8"
else:
print content.decode('gbk').encode('utf-8')


上面是为了显示内部编码的转换,简便用法如下:

chi1=codecs.open("e:/python/test_data/chinese.txt",'r','gbk')                 # 在打开时,指定文本的编码格式
content1=chi1.read()
print content1
chi1.close()


3. codecs 编码小结:

gb2312/gbk 格式是中国标准的汉字编码格式,用于语言处理和编码转换。

python的内部表示,是unicode编码。如果要做编码转换,需要:

decode encode

source ---------〉 unicode ----------〉 target

如果一个文件已经是unicode编码可以直接使用encode做编码转换。否则报错。例如:

s=u'中文'


此时可以先判断其编码方式是否是unicode:

isinstance(yourstr, unicode)     #用来判断是否为unicode
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: