Werkzeug提出了BrokenFilesystemWarning

Art*_*rti 6 python unix encoding utf-8 flask

将表单数据发送到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'
Run Code Online (Sandbox Code Playgroud)
$ 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
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 11

这不是一个严重的错误,只是警告Werkzeug无法检测到一个好的语言环境,所以正在使用UTF-8.这个猜测可能是正确的.

有关如何正确设置区域设置的信息,请参阅此Arch Linux wiki文章.它提到ANSI_X3.4-1968如果您从某些环境(如Vim)运行,即使正确配置了语言环境,Python也可能会看到编码.

:!python -c "import sys; print(sys.stdout.encoding)"在ViM中执行时,输出可能是ANSI_X3.4-1968,即使区域设置在任何地方都正确设置.将PYTHONIOENCODING环境变量设置为utf-8可以解决问题.