栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

UnicodeDecodeError:'utf8'编解码器无法解码位置3131中的字节0x80:无效的起始字节

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UnicodeDecodeError:'utf8'编解码器无法解码位置3131中的字节0x80:无效的起始字节

这对您没有帮助

sys.setdefaultencoding('utf-8')
,这会使事情进一步混乱-
这是一个讨厌的黑客,您需要将其从代码中删除。

错误正在发生,因为

line
是一个字符串,您正在调用
enpre()
enpre()
仅当字符串是Unipre时才有意义,因此Python会尝试首先使用默认编码(在您的情况下为
UTF-8
,但应为)将Unipre转换为Unipre
ASCII
。无论哪种方式,
0x80
无效的ASCII或UTF-8都将失败。

0x80
在某些字符集中有效。在
windows-1252
/
cp1252

这里的窍门是从头到尾理解代码的数据编码。此刻,您还有太多机会。Unipre字符串类型是Python的一种便捷功能,它使您可以解码已编码的字符串,而无需进行编码,直到需要写入或传输数据为止。

使用该

io
模块以文本模式打开文件并对其进行解码-
不再
.depre()
!您需要确保传入数据的编码是一致的。您可以在外部对其重新编码,也可以在脚本中更改编码。这是我将编码设置为
windows-1252

with io.open(file_name, 'r', encoding='windows-1252') as twitter_file:    for line in twitter_file:        # line is now a <type 'unipre'>        tweet = json.loads(line)

io
模块还提供通用换行符。这意味着将
rn
被检测为换行符,因此您不必注意它们。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号