当我将表单数据发送到 Flask 应用程序时,出现以下错误。它说它将使用 UTF-8 编码,但区域设置已经是 UTF-8。这个错误是什么意思?
/home/.virtualenvs/project/local/lib/python2.7/site-packages/werkzeug/filesystem.py:63:
BrokenFilesystemWarning: Detected a misconfigured UNIX filesystem:
Will use UTF-8 as filesystem encoding instead of 'ANSI_X3.4-1968'
$ locale
LANG=en_US.utf8
LANGUAGE=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
这不是一个严重错误,只是一个警告,表明 Werkzeug 无法检测到良好的区域设置,因此正在使用UTF-8
反而。这个猜测很可能是正确的。
See 这篇 Arch Linux 维基文章 https://wiki.archlinux.org/index.php/Locale了解如何正确设置区域设置。它提到Python可能会看到ANSI_X3.4-1968
如果您在某些环境(例如 Vim)中运行,即使正确配置了语言环境,也会进行编码。
执行时:!python -c "import sys; print(sys.stdout.encoding)"
在 ViM 中,输出可能是ANSI_X3.4-1968
,即使区域设置在所有地方都设置正确。设置PYTHONIOENCODING
环境变量为utf-8
来纠正这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)