用户工具

站点工具


linux:python:彻底搞懂python中文乱码问题

这是本文档旧的修订版!


====== 彻底搞懂 python 中文乱码问题 ======

转: https://blog.csdn.net/joyfixing/article/details/79971667

总结 windows cmd 窗口下不支持utf-8,想要显示中文必须转换为gbk或者unicode,而 Python idle 中这三种编码都支持。中文乱码的出现都是由于编码不一致导致的,存储的是用utf-8,打印的时候用gbk就会乱码了,所有要保证不乱码尽量保持统一,建议全部使用unicode。

1. 直接以gbk编码保存数据,作者不推荐此方法

<code python>

encoding:gbk

s = “中文” print s print repr(s)

</code>

2. cmd命令行可以支持直接打印unicode, 中文字符前加u表示用unicode存储

<code python>

encoding:utf-8

表示字符用unicode存储,而不是默认的utf-8进行存储

s = u“中文” print s print repr(s) </code>

0.1 把中文强制转换为unicode编码

通过前面的encoding:utf-8声明表示里面的中文是以utf-8进行编码的,通过decode可从utf-8解码成unicode

<code python>

encoding:utf-8

s = “中文”

1. utf-8 decode成unicode

u = s.decode(‘utf-8’) print u print type(u) print repr(u) </code>

1.0.1 强制转为gbk, 不同编码之间的转换,都需要先转换成unicode,再转换到其它的编码

<code python>

encoding:utf-8

s = “中文”

2. utf-8 decode成unicode

u = s.decode(‘utf-8’)

3. 然后unicode再编码成gbk

g = u.encode(‘gbk’)

print g print type(g) print repr(g) </code>

linux/python/彻底搞懂python中文乱码问题.1645580978.txt.gz · 最后更改: (外部编辑)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki