python3 linux下中文编码

python3 linux下中文编码

python版本:3

首先要确定当前工作环境的编码
import sys
print(sys.stdout.encoding)
python3 linux下中文编码
如图一,一般在有界面的情况是utf-8编码,但是终端就不一样了
python3 linux下中文编码
如图二,是asicc编码,但是图一图二都是同一个系统,所以有时候同一套转换的代码会出现有时行有时不行的情况,因此要先看看系统的编码。
(一般情况下我会先将系统编码转成utf-8)
python3 linux下中文编码
在确定了编码后,就开始判断转码的东西是什么
python3 linux下中文编码
b’\xe6\xaf…’ 这个是字节流,即bytes
’柯基犬‘ 这个是字符串,即str
由于系统处理数据时,是以01010101这样的数字处理的,所以无论是中文还是英文都会转为01010101,具体过程自行百度,在python中处理中文时一般会先将字符转成unicode编码(你可以理解为这是个字典,如果utf-8是中文,asicc是英文,unicode就是那本中英词典),然后再转成你工作环境的编码,如下图
python3 linux下中文编码
具体解决方案很多,这里就提供思路,mark一下,以防忘记