首页 > 后端开发 > 正文

python命令行输入中文乱码怎么办

2024-02-28 14:03:03 | 我爱编程网

python命令行输入中文乱码怎么办相关内容,小编在这里做了整理,希望能对大家有所帮助,关于python命令行输入中文乱码怎么办信息,一起来了解一下吧!

本文目录一览:

python命令行输入中文乱码怎么办

python命令行输入中文乱码怎么办

python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码。

在python3不存在该问题

运行结果:

原因

中文windows默认的输出编码为gbk ,与脚本中定义的UTF-8不一样,所以出现了解码失败的情况。

相关推荐:《Python基础教程》

解决方法

有如下两种方法可以解决这个问题

方法一

我们可以通过先把中文解码为unicode,然后再转化为gbk来解决这个问题:

修改后运行结果:

方法二

当然,我们也可以通过改变cmd命令行窗口的输出格式来解决这个问题:

·

chcp 65001 就是换成UTF-8代码页

·

chcp 936 可以换回默认的GBK

但是这样就降低了脚本的兼容性,在其他环境运行的时候可能还会出现这样的错误,而且可能会影响其他脚本运行,所以推荐使用第一种方法。

python命令行输入中文乱码怎么办

python 中文乱码问题

乱码原因:

因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。

解决方法:

在控制台打印的地方用一个转码就ok了,打印的时候这么写:

print myname.decode('UTF-8').encode('GBK')

比较通用的方法应该是:

import sys

type = sys.getfilesystemencoding()

print myname.decode('UTF-8').encode(type)

python命令行输入中文乱码怎么办

python print中文乱码问题 win10 Python2

因为windows默认的编码方式是GBK,python文件保存时使用了utf-8,在读取时,python使用GBK的编码表去解utf-8编码的字节码,因为GBK与UTF-8编码不兼容,自然出现了乱码问题

解决方法:

1.直接使用 u'是' 形式,指明以unicode编码,解码方式会以顶部 #coding定义的编码方式,如果不写,以操作系统当前编码方法,建议写上#coding,因为要让操作系统编码和源文件编码经常会不一样。推荐使用这种方式我爱编程网

2.输出时指定解码方法  print '是'.decode("utf8") ,必须和保存的编码一致,忽略#coding的定义

3.将#coding 和保存编码改为和操作系统一样的编码,就可以直接print '是' 正常输出,也不推荐,因为需要事先知道操作系统编码,复制到其他电脑上,操作系统编码不一样就会出错

#coding=gbk

print u'是' #方法1

print '是'.decode("gbk") #方法2

print '是' #方法3

注意:

#coding指明的编码必须和保存的编码一样,不然1,3方法都会产生错误,原因也是保存编码和读取编码不一致。一般IDE能够自动根据#coding保存文件

以上就是python命令行输入中文乱码怎么办全部内容了,了解更多相关信息,关注我爱编程网。
与“python命令行输入中文乱码怎么办”相关推荐