读取文件时出现Python UnicodeEncodeError

问题描述 投票:0回答:1

我已经搜索了几个小时来修复这个错误,但没有一个在线解决方案解决了我的问题。

在Python 3.6上执行这段代码时:

# encoding=utf-8
f = open("x.htm", "r", -1, "utf-8", 'ignore') 
s = f.read()
print(s)

我得到以下错误:UnicodeEncodeError:'ascii'编解码器无法编码位置37中的字符'\ xfc':序号不在范围内(128)

我甚至不知道它为什么使用ascii编解码器?

我使用的是普通的html文件,只包含在文件中也指定为charset的utf-8字符(当通用浏览器打开时看起来很正常)

我已经找到了一个解决方法:

s = f.read().encode('utf-8').decode("ascii", "ignore")

到目前为止的问题是数据丢失,因为使用replace标记时忽略标记,而不是发生以下错误:

UnicodeEncodeError:'ascii'编解码器无法对位置37-38中的字符进行编码:序数不在范围内(128)

我有一个正常的html文件,可以正确地通过我的浏览器和编辑器解码utf-8,我尝试用utf-8在python中打开这个文件 - 然后出现一些带ascii的unicode错误?

python encoding utf-8 decoding
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.