python3 打印函数发出“ascii”编解码器无法编码字符错误

mar*_*aft 3 javascript unicode encoding non-ascii-characters python-3.x

用户在我的网站上输入了一个字符串。他们输入一个非 ASCII 字符。

javascript 保存他们的输入,用 JSON.stringify() 将其打包,然后将其发送到服务器。

运行 Python3 的服务器使用 json.loads 解压 JSON 并将此字符串保存在一个 Node 对象中,然后运行该行

print('looks like {}'.format(node_obj))
Run Code Online (Sandbox Code Playgroud)

我收到错误

'ascii' codec can't encode character error '\u2212' in position 941: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

在我看来,Python3 中的打印函数试图将 unicode 字符串转换为 ascii!(使用 ascii 编码转换为字节对象?)

有没有可能是我的 FreeBSD 服务器不支持 UTF-8,导致 Python 的打印功能进行这种转换?或者,该字符串可能一开始就没有被正确清理过,当我第一次从用户那里收到它时,我应该在 javascript 中这样做吗?

让我知道哪些进一步的信息对您有用。

Jos*_*Lee 5

什么是locale命令说?

您可以让 Python 使用 utf-8LANG=en_US.UTF-8PYTHONIOENCODING=utf-8.

在默认环境中设置 LANG 取决于平台:https : //unix.stackexchange.com/questions/342817/how-do-i-add-a-language-in-freebsd