Python Windows下文件乱码问题
Python Windows下文件乱码问题
在练习python文件处理的时候,发现自己使用UTF-8格式保存的中文内容打开后会出现一堆乱码。大致情况如下:
使用UTF-8保存后,使用文件读取,默认会出现乱码或者无法打开的情况,譬如:
- 无法打开文件
- 文件乱码情况
原因分析
当我们没有指定encoding参数下,操作系统会使用自己默认的编码
- Linux默认使用UTF-8编码
- Windows默认使用GBK编码
当我们没有指定Python的编码时候,会默认使用操作系统自带的编码,如果在Windows下,我们使用的是UTF-8编码,却用GBK解码,自然而然就会出现无法打开的情况。
解决方法
指定Python文件打开的解码方式为utf-8,即可解决问题
# 打开文件
with open(r'a.txt',mode="r",encoding="utf-8") as f:
# 指定编码格式为UTF-8,解决乱码问题
res = f.read()
# 把内存的utf-8的二进制使用unicode模式读入。
print(res,type(res))
# 其中f为文件句柄,Python文件管理会自动执行
# rt的意思是:只读模式,内容都是unicode模式的