python中文乱码怎么解决?
python中文乱码的解决方法:1、文件存储设为utf-8格式,并使用encoding将编码声明为utf-8;2、在中文前面加上个小u标记,将中文用unicode存储;3、把中文强制转换为GBK或者unicode编码。
python中文乱码问题的解决方法:
1、demo.py 文件和编码声明都为 GBK
这种方法比较笨,就是把 demo.py 文件改为 GBK 存储,而且编码声明也是GBK,个人不推荐。
# encoding:gbk s = "中文" print s print repr(s)
2、中文用 unicode 表示
只要在中文前面加上个小u标记,后面的中文就用 unicode 存储了。
# encoding:utf-8 s = u"中文" print s print repr(s)
cmd 下是可以打印 unicode 字符的,如下:
3、把中文强制转换为GBK或者unicode编码
强制转换为unicode编码,在 Python 中编码是可以互相转换的,比如从utf-8转换为gbk,不同编码之间不能直接转换,需要通过unicode字符集中间过渡下,从上面基础知识可知unicode是一种字符集,不属于编码,而utf-8是具体实现unicode思想的一种编码。utf-8转换为unicode是一种解码过程,通过decode可从utf-8解码成unicode。
# encoding:utf-8 s = "中文" u = s.decode('utf-8') print u print type(u) print repr(u)
强制转换为gbk编码,上一步已经从utf-8转换为unicode了,从unicode是编码的过程,通过encode实现。
# encoding:utf-8 s = "中文" u = s.decode('utf-8') g = u.encode('gbk') print g print type(g) print repr(g)
总结
windows cmd 窗口下不支持utf-8,想要显示中文必须转换为gbk或者unicode,而 Python idle 中这三种编码都支持。中文乱码的出现都是由于编码不一致导致的,存储的是用utf-8,打印的时候用gbk就会乱码了,所有要保证不乱码尽量保持统一,建议全部使用unicode。
更多相关知识,请访问 PHP中文网!!
下一篇: php中数字转换成货币格式实现代码