首页 > 代码库 > 【原创】python中文编码问题:控制窗口能输出中文,到文本文件里乱码
【原创】python中文编码问题:控制窗口能输出中文,到文本文件里乱码
遇到一个问题:控制窗口能正常输出中文,>到文本文件里却是乱码。最后解决了,总结一下Python中文编码的坑。
开始感觉非常奇怪,想第一行为什么是正常的?之后注意到文本文件为ANSI编码,第一行在代码里面是字符串的形式输出来的,而且代码的文本格式也为ANSI。
后面不正常的数据是在列表用utf-8编码输出来的。开始想把第一行用utf-8输出来,把代码改为s.decode(‘gbk‘).encode(‘utf-8‘) ,发现结果还是不行。因为直接输入的字符串是按照代码文件的编码来处理的。
之后把列表中的数据用 str(i).decode(‘utf-8‘).encode(‘gbk‘)处理,结果就正确了。
————————————————————————————————————————————————————————————————————————
此外遇到个错误:SyntaxError: (unicode error) ‘utf8‘ codec can‘t decode byte 0xc0 in position 0: invalid start byte
问题原因:脚本文件所用的编码是ANSI,而不是utf-8的编码,所以,u"中文",无法识别,而 去notepad+中,格式->转为utf-8编码,后,再保存文件,再去运行脚本,就可以支持u"中文"了。
当然,对应的unicode(“中文”)这样的做法,起始是最安全的,其不会受到你当前python脚本文件所用编码的影响。
【原创】python中文编码问题:控制窗口能输出中文,到文本文件里乱码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。