Flask 应用程序在新计算机上遇到 Unicode 编码错误

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

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

所以我不确定为什么会导致这个错误,我想可能是因为当我使用

return render_template
时我返回了一个带有一些中文的数据?但它在我的实验室电脑上工作...

我是这个初学者,所以我无法真正理解这个错误意味着什么,我唯一能猜测的是 Flask 中的 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

感谢您阅读本文

python python-3.x flask unicode
1个回答
0
投票

看起来代码和应用程序没有问题。这是运行平台的问题。您能否指定您的台式机和笔记本电脑环境的差异,例如操作系统、类型等?

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

© www.soinside.com 2019 - 2024. All rights reserved.