zoukankan      html  css  js  c++  java
  • 【原创】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脚本文件所用编码的影响。

  • 相关阅读:
    TOMCAT清理
    tomcat 热部署、热加载 精析
    TOMCAT配置数据库连接池
    TOMCAT修改端口号
    TOMCAT配置管理员
    Go语言net/http 解读.
    《coredump问题原理探究》Linux x86版7.7节 set对象
    Asp.net与office web apps的整合
    【设计模式】代理模式实现连接池
    手把手实现Java权限(1)-Shiro介绍
  • 原文地址:https://www.cnblogs.com/liyangqiu/p/7206622.html
Copyright © 2011-2022 走看看