UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

  • 网上有个帖子有一种解决办法:
  • 我的解决办法:

python读txt文档时,出现错误:
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xff in position 0: illegal multibyte sequence

网上有个帖子有一种解决办法:

(https://blog.csdn.net/shijing_0214/article/details/51971734)
具体内容为:
使用python的时候经常会遇到文本的编码与解码问题,其中很常见的一种解码错误如题目所示,下面介绍该错误的解决方法,将‘gbk’换成‘utf-8’也适用。
(1)、首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’);
(2)、若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’);
(3)、若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:open(‘1.txt’,encoding=’gb18030’,errors=‘ignore’);
(4)、还有一种常见解决方法为open(‘1.txt’).read().decode(‘gb18030’,’ignore’)
依据下面网友的评论能解决,但是还不能解决我遇到的问题。

我的解决办法:

  1. 修改文件编码格式:
    在Windows系统中,使用Notepad++修改编码文件格式为UTF-8;
    在linux系统中,文件编码转换:
    (1) 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8
    (2) enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
    enconv -L zh_CN -x UTF-8 filename
    (3) iconv 转换,iconv的命令格式如下:
    iconv -f encoding -t encoding inputfile
    比如将一个UTF-8 编码的文件转换成GBK编码
    iconv -f UTF-8 -t GBK file1 -o file2
    查看文件编码file命令
    file ip.txt
    ip.txt: UTF-8 Unicode text, with escape sequences

  2. 保存退出后,重新运行代码
    [1]: UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xab in position 11126: illegal multibyte sequence

你可能感兴趣的:(python)