代码之家  ›  专栏  ›  技术社区  ›  陳俊瑋 William

Flask应用程序在新计算机上遇到Unicode编码错误[已关闭]

  •  -1
  • 陳俊瑋 William  · 技术社区  · 1 年前

    我是一个网络开发的初学者,目前正在使用Flask开发一个网络应用程序。然而,在切换到桌面后,我遇到了Unicode编码问题,但在使用笔记本电脑时一切正常。

    所以我不确定为什么会导致这个错误,我想可能是因为当我使用 return render_template 我返回的数据中有一些中文?但它在我的实验室工作。。。

    我是这方面的初学者,所以我真的不明白这个错误是什么意思。我唯一能猜到的是弗拉斯克的werkzeug出了问题,而且

    错误消息如下:

    Traceback (most recent call last):
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 1488, in __call__
        return self.wsgi_app(environ, start_response)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 1466, in wsgi_app
        response = self.handle_exception(e)
                   ^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 1463, in wsgi_app
        response = self.full_dispatch_request()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 873, in full_dispatch_request
        return self.finalize_request(rv)
               ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 892, in finalize_request   
        response = self.make_response(rv)
                   ^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\flask\app.py", line 1176, in make_response     
        rv = self.response_class(
             ^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\werkzeug\wrappers\response.py", line 175, in __init__
        self.set_data(response)
      File "C:\Users\a0935\AppData\Local\Programs\Python\Python311\Lib\site-packages\werkzeug\wrappers\response.py", line 299, in set_data
        value = value.encode()
                ^^^^^^^^^^^^^^
    UnicodeEncodeError: 'utf-8' codec can't encode characters in position 3518-3526: surrogates not allowed
    127.0.0.1 - - [02/Mar/2024 13:54:56] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 304 -
    127.0.0.1 - - [02/Mar/2024 13:54:56] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 304 -
    127.0.0.1 - - [02/Mar/2024 13:54:56] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 304 -
    127.0.0.1 - - [02/Mar/2024 13:54:56] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 304 -
    

    这是我的代码:

    https://github.com/William08290829/OutFit

    只需运行main.py

    我尝试过网上找到的各种解决方案,但都没有解决问题。作为一个初学者,我将非常感谢任何克服Unicode编码错误的指导或建议。

    环境

    Python 3.11.8

    烧瓶3.0.2

    Werkzeug 3.0.1

    感谢您阅读本文

    1 回复  |  直到 1 年前
        1
  •  -1
  •   Sumit Gupta    1 年前

    代码和应用程序似乎没有问题。这是一个运行时平台的问题。请指定您的台式机和笔记本电脑环境的差异,如操作系统、类型等?

    如果它们是两种不同的操作系统类型,那么肯定会出现编码/解码问题,因为Linux和Windows都使用不同的字符编码。

    推荐文章