key point:
乱码产生原因:
首先,内存中的编码都是Unicode;而由内存向硬盘保存的时候人为要指定一个字符编码,比如说是GBK,这时就是由Unicode转化称GBK,当把这个硬盘文件重新在内存读取的时候也要告诉计算机按照GBK编码来读取,它才会对应的把数据由GBK编码反解成Unicode编码写入到内存。如果此时计算机是按照其他方式编码写入内存就出现乱码。
避免乱码:
文件用什么编码保存的,就用什么编码读取
python3 中编码:
在Python3中所有的字符串都是用unicode编码来保存(不需要前面加“u”),字符串的数据类型也只有一个,就是str,只要是用unicode来保存的,那么所有的字符串在任何情况下都不会出现乱码
文件打开的编码:
如果不指定字符编码,默认打开文件的字符编码与操作系统相匹配:
Windows系统(中国大陆用户):gbk
Liunx系统:utf-8
MacOS:utf-8
网友评论