python3 中文输出乱码问题

Python019

python3 中文输出乱码问题,第1张

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")方法输出成字节串用于和其他环境交流。

例子:a="您好"

print(a)

就直接运行还会报错的原因是本人本人新建的文件编码默认是ANSI,需要修改一下文件的编码为utf-8,就可以了。

修改文件编码可以这样做:用系统自带的记事本打开,然后按另存为,在保存的时候,会可选择的编码。