[python] python3.X编码格式问题

Posted flybei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[python] python3.X编码格式问题相关的知识,希望对你有一定的参考价值。

  python3.X默认编码格式为UTF-8编码,因此对于汉字字符是可以自动识别的。但对于含有汉字字符的下列代码分别用纯txt文本、Geany编辑器、pycharm三种不同的方式编译执行时,唯独只有在pycharm中可以正确运行,其他两种均报错:

SyntaxError: Non-UTF-8 code starting with ‘\\xb1‘ in file demo.txt on line 1, but

no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

name1 = "北京"
name2 = name1 
print(name1,name2)
name1 = "南京"
print(name1,name2)

  造成上述错误的原因是用纯txt文本和Geany编辑器编写的python程序的编码格式默认是ASCII和gbk,python3.x默认的编码格式是UTF-8,两者不一致。而pycharm中默认编码格式就是UTF-8格式。如下图将txt纯文本另存为UTF-8编码格式后,再执行程序就正常了。

技术分享图片

  如下图对于Geany编辑器首选项中默认缺省文件格式为gbk编码格式,将其修改为UTF-8格式后,即可正确执行该代码。

技术分享图片

 

以上是关于[python] python3.X编码格式问题的主要内容,如果未能解决你的问题,请参考以下文章

如何实现在python2.x上输出中文

reload(sys)后print失效问题解决

初步解决python编码问题

序章.python2.x和python3.x的的选择

Python3.X Socket 一个编码与解码的坑

python2x 与 python3x 区别