在使用python读取文件的时候,报了下面的错误:
UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb1 in position 0: invalid start byte.

我当时的现象是cat可以正常读出中文,vim里面中文乱码的,python读文件加上了encoding='utf8’也不好使

这种问题很是头疼

解决方法

更改文件的编码格式:
vim/vi编辑器(进入esc命令模式),执行命令,set fileencoding=utf-8,然后回车,此时我们将文件的格式改成了utf-8格式的了,使用utf-8读取,就能正确的读出文件

VIM配置

vim /etc/vim/vimrc

末尾追加

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

脚本

os.system("vim -S script.vim %s" % file_name)
# cat script.vim 
set fileencoding=utf-8
wq!

就这样的就可以了

更多推荐

python解决读取文件时中文乱码的解决方案