pycharm打印中文出现乱码,有几种情况
第一种:
![13790629-3f6ba48994a7e2fe](https://i-blog.csdnimg.cn/blog_migrate/e519f72751812a454c1deedaab03e150.webp?x-image-process=image/format,png)
图片
![13790629-1b12c7561a558fd5.gif](https://i-blog.csdnimg.cn/blog_migrate/f4d362547bf1c43f1ff40caca456c304.webp?x-image-process=image/format,png)
image.gif
对于这种情况,是普通的一种,你需要检查开头,是否加了
# -*- coding:utf-8 -*-
![13790629-c61376d2003d502b.gif](https://i-blog.csdnimg.cn/blog_migrate/2a61d6bef96527555b459577b9ed5e6c.webp?x-image-process=image/format,png)
image.gif
还有
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
![13790629-843000fed3472e8f.gif](https://i-blog.csdnimg.cn/blog_migrate/af54ddb257dd2961539b87d43312fb1a.webp?x-image-process=image/format,png)
image.gif
对于这两个处理中文输出的代码,最好每次处理中文时就加上,会减少很多问题
第二种问题:
这个网上有很多人说过,就是进入setting中,将file encoding中的encoding选项都选为 utf-8 选项
第三种问题:
如果以上两种都无法解决你的问题,打印出来还是乱码,也许你输入的中文编码就有问题了。
print type(s) <span style="font-family: Arial, Helvetica, sans-serif;">#s为字符串</span>
![13790629-df63dcb822508fcb.gif](https://i-blog.csdnimg.cn/blog_migrate/7ec6145f6a8cef0313067810a0b6c39c.webp?x-image-process=image/format,png)
image.gif
如果结果是 type str, pycharm的console中文输出 的要求需要的编码是unicode,这就是主要症结所在。所以,我们需要做的是把str转为unicode
with open("test") as f:
for i in f:
# 将读入的utf-8字节流进行解码
u = i.decode('utf-8')
![13790629-d4d21d54619f7ec2.gif](https://i-blog.csdnimg.cn/blog_migrate/968d362050f6eab90fdabf73d32fa287.webp?x-image-process=image/format,png)
image.gif
这是一种常规的做法,将字符输出是编码,还有一种就是在读入数据的时候就将字符编码
# 使用codecs直接开unicode通道
import codecs
file = codecs.open("test", "r", "utf-8")
for i in file:
print type(i)
# i的类型是unicode的
![13790629-eaf987c611bc9813.gif](https://i-blog.csdnimg.cn/blog_migrate/3680bd3e5d96754c481d4517aee828f2.webp?x-image-process=image/format,png)
image.gif
这里使用了codecs库,这是一种Python自带处理各种字符编码的字符串和文件的库,对文件的读入,爬虫网页的读入,都有很好的效果,网上有很多教程,这里就不多赘述。
如果pycharm还有问题请留言。