我在python 2.7 shell里面执行
后来我在Ulipad编辑器写同样的代码,文件是utf-8格式
提示异常,后来我编码
这样才能正常显示文字!!
为什么在命令行写的中文unicode就能直接打印出来,而在软件中写的代码,就会出现问题?
请教一下,这怎么解释原因~
我在python 2.7 shell里面执行
后来我在Ulipad编辑器写同样的代码,文件是utf-8格式
提示异常,后来我编码
这样才能正常显示文字!!
为什么在命令行写的中文unicode就能直接打印出来,而在软件中写的代码,就会出现问题?
请教一下,这怎么解释原因~
我理解是unicode
是一个中间状态码,如果你要输出必须要转换成其他编码(如utf8、gbk、ascii
)
其他编码----decode----> unicode ----encode----> 其他编码
问题的关键,是系统的shell和你Ulipad编辑器默认的字符集不一样:
gbk
,python自动转换成gbk
输出没有问题acsii
码,python自动转换成acsii
码出错,应为acsii不能表示中文
你的 shell 跟 那个 UliPad 本身支持的编码不同吧。
print
出来的信息一定是“字节”,不同的环境它们以什么编码去“理解”这些字节是不一样的。如果不匹配,就可能会报错了。
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
python2关于中文处理上,在软件和命令行是有不一样的地方,在软件里运行只要print '测试'就行了,具体这个软件是怎么回事我真不清楚,因为我pycharm编辑器里是可以这样输出的。而在命令行print文本的时候会被系统的cmd.exe自动编码成gbk的格式,这个你在命令行的属性里可以看到,所以你直接print unicode编码就会变成中文。但是你在shell直接用ss就会显示出变量的值是unicode编码。而python3就没那么多问题了。