python 3.4中,'gbk' codec can't decode byte 0x80 in position 0
巴扎黑
巴扎黑 2017-04-17 14:01:10
[Python讨论组]

本人使用python 3.4,win7 64位操作系统,当

      6   """ load single batch of cifar """
      7   with open(filename, 'r') as f:
----> 8     datadict = pickle.load(f)
      9     X = datadict['data']

错误信息是UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence

我把line 7 改成了

      6   """ load single batch of cifar """
      7   with open(filename, 'r',encoding='utf-8") as f:
----> 8     datadict = pickle.load(f)
      9     X = datadict['data']

    311         # decode input (taking the buffer into account)
    312         data = self.buffer + input
--> 313         (result, consumed) = self._buffer_decode(data, self.errors, final)
    314         # keep undecoded input until the next call
    315         self.buffer = data[consumed:]

错误的最终指向了 Python34\lib\codecs.py in decode(self, input, final)。

错误信息是UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte。

请问具体是编解码哪块出了问题,怎么解决?

巴扎黑
巴扎黑

全部回复(2)
伊谢尔伦
pywith open(filename, 'rb') as f:

pickle(除了最早的版本外)是二进制格式的,所以你应该带 'b' 标志打开文件。

黄舟

http://www.crifan.com/summary_python_unicodedecode_error_possible_reasons_and_solutions/

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号