UnicodeDecodeError_ ‘gbk‘ codec can‘t decode byte

在使用gradio的Chatbot时,我的电脑报出了以下问题:

`C:\Users\70262\Desktop\new>python\python.exe demo.py Traceback (most recent call last):   File "C:\Users\70262\Desktop\new\demo.py", line 1, in <module>     import gradio as gr   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\__init__.py", line 3, in <module>     import gradio._simple_templates   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\_simple_templates\__init__.py", line 1, in <module>     from .simpledropdown import SimpleDropdown   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\_simple_templates\simpledropdown.py", line 6, in <module>     from gradio.components.base import FormComponent   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\components\__init__.py", line 40, in <module>     from gradio.components.multimodal_textbox import MultimodalTextbox   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\components\multimodal_textbox.py", line 28, in <module>     class MultimodalTextbox(FormComponent):   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\component_meta.py", line 198, in __new__     create_or_modify_pyi(component_class, name, events)   File "C:\Users\70262\Desktop\new\python\Lib\site-packages\gradio\component_meta.py", line 92, in create_or_modify_pyi     source_code = source_file.read_text()                   ^^^^^^^^^^^^^^^^^^^^^^^   File "pathlib.py", line 1028, in read_text UnicodeDecodeError: 'gbk' codec can't decode byte 0xb2 in position 1972: illegal multibyte sequence`

![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

以下是gradio的官方示例:

`import gradio as gr import random import time  with gr.Blocks() as demo:     chatbot = gr.Chatbot()     msg = gr.Textbox()     clear = gr.ClearButton([msg, chatbot])      def respond(message, chat_history):         bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])         chat_history.append((message, bot_message))         time.sleep(2)         return "", chat_history      msg.submit(respond, [msg, chatbot], [msg, chatbot])  if __name__ == "__main__":     demo.launch()`

![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

其中报出的最后一行错误指出是编码器的问题,但我在代码前添加# coding=utf-8以及切换vscode的编码器都没有任何效果

最后找到pathlib下的read_text:

        `encoding = io.text_encoding(encoding)         with self.open(mode='r', encoding=encoding, errors=errors) as f:             return f.read()`

并将其改为

encoding = io.text_encoding(encoding)
try:
	with self.open(mode='r', encoding=encoding, errors=errors) as f:
		return f.read()
except UnicodeDecodeError:
	with self.open(mode='r', encoding='utf-8', errors=errors) as f:
		return f.read()

后,示例代码正常运行

使用 Hugo 构建
主题 StackJimmy 设计