python输出的中文乱码
‘壹’ python print中文乱码问题 win10 Python2
python2字符串编码的问题,如果要输出中文可以使用u前缀,这样就可以直接使用了
a=u'你好'
printa
这样就可以了
‘贰’ python命令行输入中文乱码怎么办
python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码。
在python3不存在该问题
运行结果:
原因
中文windows默认的输出编码为gbk ,与脚本中定义的UTF-8不一样,所以出现了解码失败的情况。
相关推荐:《Python基础教程》
解决方法
有如下两种方法可以解决这个问题
方法一
我们可以通过先把中文解码为unicode,然后再转化为gbk来解决这个问题:
修改后运行结果:
方法二
当然,我们也可以通过改变cmd命令行窗口的输出格式来解决这个问题:
·chcp 65001 就是换成UTF-8代码页
·chcp 936 可以换回默认的GBK
但是这样就降低了脚本的兼容性,在其他环境运行的时候可能还会出现这样的错误,而且可能会影响其他脚本运行,所以推荐使用第一种方法。
‘叁’ python中文乱码解决
windows下的文件路径,cmd窗口等默认编码都是gbk
但在windows下编写python程序的时候,我们一般采用的编码是utf-8
二者不一致是导致乱码的根本原因!
在pycharm下,为了中文不乱码,那么需要注意一下几个方面:
一、每一个源程序文件头部,需要加上
#-*-coding:utf-8;-*-
这样就没有乱码了
‘肆’ python打印输出汉字,有一部分出现乱码怎么解决
主要“()”不要用中文括号
冒号不要用中文冒号
引号不要用中文引号
只有要打印的输入内容可以用中文的。
以上最好检查一遍,因为我打的时候经常打错,最好删了重打,因为两种括号太难区分了。
‘伍’ python输出部分乱码
#-*-coding:UTF-8-*-
importsys
reload(sys)
print(sys.getdefaultencoding())#查看默认编码,我的是ascii
sys.setdefaultencoding('utf8')
print(sys.getdefaultencoding())#已经转为utf8了,应该没问题了
str=input('请输入:')#如果是python2建议用raw_input()
print'你输入的内容是:',str
‘陆’ python终端输出乱码怎么解决
在命令行终端上工作时,经常会碰到一个头疼的问题就是中文乱码。下面我们就来看一下解决python在终端输出乱码的解决方法。
牵涉编码的地方一共有五处:
Python代码文件前两行声明的编码
Python代码文件实际存储所使用的编码
Vim的显示编码
Linux系统的文件编码
SecureCRT等终端设置的显示编码
严格来讲,五码一致的时候,如果文件没有损坏,应该是能够正常显示了。
Python编码声明:
如果python代码文件中包含中文,就一定要在代码文件的前两行(注意:一定要是前两行)做出编码声明,否则python代码默认采用ASCII保存,这样遇到中文字符就会报错。在代码头部声明编码的方式有三种:
# coding=<encoding name>
# -*- coding: <encoding name> -*-
# vim: set fileencoding=<encoding name>
Vim中有关编码的选项:
在 Vim 中,有四个与编码有关的选项,它们是:fileencodings、fileencoding、encoding 和 termencoding。
Linux系统的编码设置:
Linux的系统编码设置可以通过设置locale来完成,直接在命令行敲locale,然后回车,即可查看当前系统的编码设置,与保存文件相关的设置是LC_CTYPE。
如LC_CTYPE=zh_CN.gb18030,即把系统的编码设置成为了gb18030。
更多Python知识请关注Python自学网
‘柒’ Python为什么一运行就是乱码
可能是编码问题,开头加上coding:utf-8试试。
‘捌’ python3 中文输出乱码问题
python 3和2很大区别就是python本身改为默认用unicode编码。
字符串不再区分"abc"和u"abc", 字符串"abc"默认就是unicode,不再代表本地编码、
由于有这种内部编码,像c#和java类似,再没有必要在语言环境内做类似设置编码,比如“sys.setdefaultencoding”;
也因此也python 3的代码和包管理上打破了和2.x的兼容。2.x的扩展包要适应这种情况改写。
另一个问题是语言环境内只有unicode怎么输出gbk之类的本地编码。
答按惯例都在(序列化)输出时才转换成本地编码。
比如
file.write("GBK的中文".encode("GBK"))
python环境内字符串用str.encode("GBK")方法输出成字节串用于和其他环境交流。
‘玖’ python中文显示乱码,已经在开头有了coding: utf-8
乱码原因:
因为你的文件声明为 utf-8,并且也应该是用 utf-8 的编码保存的源文件。但是 windows 的本地默认编码是 cp936,也就是 gbk 编码,所以在控制台直接打印 utf-8 的字符串当然是乱码了。
解决方法:
py文件用记事本打开,另存为utf-8格式即可
‘拾’ python 中文乱码问题
记事本是用utf-8保存你下载了东西的。你下载下来的不是utf-8,保存下来中文当然就乱码了。而gbk和utf-8里英文的编码值都一样,所以不受影响。
一个方法是你留意下目标页面的charset 和 contentType,另一个方法是你复制一个目标页面的字,放cmd里看它的编码长度,以此来判断它的原来编码。