关于Python的编码问题
将GB2312中文字符解码
s = gb2312string.decode(‘gbk’)
将字符串转码为utf-8
s.encode(‘utf-8’)
查看解释器默认字符编码
import sys
sys.getdefaultencoding() # ascii
修改默认编码(本次)
reload(sys) # 解决报错问题
sys.setdefaultencoding('utf8’)
chstring = "中文字符"
with open('test.txt','w') as f:
... f.write(chstring)
...
mystring = chstring.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)
问题:
1, string.decode('gbk') 解码后的编码格式?(操作系统默认)
2, 环境默认ascii环境下输入的中文字符, open(filename, 'w')可以正常写入, 而'中文字符'.encode('ascii')报错,所生成文件的编码格式是什么?怎么确定的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.