错误:
UnicodeEncodeError: 'gbk' codec can't encode character '\ue13b' in position 25: illegal multibyte sequence
文件编码格式为utf-8,并且在读取文件时该文件中有无法识别的单词。 ‘左足趾麻木’
代码:
for line in open(label_filepath, encoding='utf-8'):
print(line)
答案 0 :(得分:1)
将本机编码更改为utf-8
import sys
import io
sys.stdout = io.TextIOWrapper(buffer=sys.stdout.buffer,encoding='utf8')
答案 1 :(得分:0)
Python尝试打印时发生错误。打印时,即写入sys.stdout
,Python使用终端期望的编码对要打印的文本进行编码。在这种情况下,系统编码为 gbk ,但是 gbk 无法编码字符串('\ue13b'
)中的第三个字符,因此UnicodeEncodeException
被举起。
一种解决方案是在调用Python时将PYTHONIOENCODING环境变量设置为UTF-8:
PYTHONIOENCODING=utf-8 python myscript.py
如果您使用的是类似Unix的操作系统,则可以将语言环境从gbk语言环境更改为utf-8语言环境,例如从zh_CN.gbk
更改为zh_CN.utf8
(这会影响所有程序的方式从文件读取和写入,因此如果您有很多 gbk 编码数据,那么这可能不是一个好主意。
如果您使用的是Windows,请参阅this question的答案,以获取有关在Windows终端中使用unicode的信息。
答案 2 :(得分:0)