python在进交互UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 166?

(base) C:\Users\wangwenjing>python
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
Failed calling sys.__interactivehook__
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site.py", line 440, in register_readline
readline.read_history_file(history)
File "C:\ProgramData\Anaconda3\lib\site-packages\pyreadline\rlmain.py", line 165, in read_history_file
self.mode._history.read_history_file(filename)
File "C:\ProgramData\Anaconda3\lib\site-packages\pyreadline\lineeditor\history.py", line 82, in read_history_file
for line in open(filename, 'r'):
UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 166: illegal multibyte sequence
>>>

第1个回答  2023-03-05

这个错误通常是由于Python解释器无法将输入的字节序列解码为Unicode字符串,而导致的。它通常是因为编码不匹配导致的,比如在GBK编码下输入了一个无法解码的字节。

解决此问题的方法是将Python解释器的编码设置为匹配输入的编码。可以使用以下方法来解决该问题:

    在终端或控制台输入以下命令设置Python解释器的编码为UTF-8:

    javascriptCopy codeexport PYTHONIOENCODING=UTF-8

    如果在IDE中使用Python,则需要设置IDE的编码以匹配输入。例如,使用PyCharm时,可以在“Settings”中的“Editor”部分下的“File Encoding”选项卡中设置文件编码和控制台编码为UTF-8。

    如果输入来自于文件,则需要确保文件编码与Python解释器编码匹配。可以在文件头中添加编码声明来指定文件编码。例如,在文件的第一行添加以下内容:

    markdownCopy code# -*- coding: utf-8 -*-

    这将告诉Python解释器使用UTF-8编码解析文件。如果文件使用其他编码,则需要相应更改编码声明。

    通过上述方法设置编码后,就可以避免出现UnicodeDecodeError错误。

第2个回答  2023-03-05
说明你文件内容并不完全符合gbk编码啊
相似回答
大家正在搜