平时用的最多的就是print输出看下效果,but 打印的时候老是能遇到知种编码报错这个字符不能编码那个字符不能解码等。
下面就做个测试记录下看哪种情况下会报错
执行环境
cmd运行环境编码为936也就是gbk
pycharm运行环境为utf-8
python3编码说明
先简单说下编码,unicode是国际统计的一种编码规范,utf-8就是使用这种规范实现的一种多字节编码。这个要搞清楚不清楚的自行搜索了解
python3中处理字符默认用的编码是utf-8,
源代码中给变量赋值字符串时默认是unicode也就是str类型这两个是同一个意思(这一点跟python2区别很大)
str(unicode)是可以直接车换成对应的utf-8或gbk文本的。
但是实际使用过程中却遇到很多报错
测试utf-8文本文件
在D盘根目录创建一个文本文件编码为utf-8里面写几个汉字
以二进制读取后解码并打印with open('D:/1.txt','rb') as f:
print(f.read().decode('utf-8'))
input('...')
cmd下显示正常
pycharm下也正常