python3 打印函数发出 'ascii' codec can't encode character 错误
python3 print function emits 'ascii' codec can't encode character error
用户在我的网站上输入了一个字符串。他们输入了一个非 ascii 字符。
javascript 保存他们的输入,用 JSON.stringify() 打包,然后发送到服务器。
服务器 运行 Python3 用 json.loads 解压 JSON 并将此字符串保存在节点对象中,然后运行行
print('looks like {}'.format(node_obj))
我收到错误
'ascii' codec can't encode character error '\u2212' in position 941: ordinal not in range(128)
在我看来,Python3 中的 print 函数正在尝试将 unicode 字符串转换为 ascii! (使用 ascii 编码转换为字节对象?)
是否可能是我的 FreeBSD 服务器不支持 UTF-8,导致 Python 的打印功能进行此转换?或者也许字符串一开始就没有被正确地清理过,我应该在 javascript 第一次从用户那里收到它时这样做?
让我知道哪些信息对您有用。
locale
命令说什么?
您可以使 Python 与 LANG=en_US.UTF-8
或 PYTHONIOENCODING=utf-8
一起使用 utf-8。
在默认环境中设置LANG是platform-dependent:https://unix.stackexchange.com/questions/342817/how-do-i-add-a-language-in-freebsd
用户在我的网站上输入了一个字符串。他们输入了一个非 ascii 字符。
javascript 保存他们的输入,用 JSON.stringify() 打包,然后发送到服务器。
服务器 运行 Python3 用 json.loads 解压 JSON 并将此字符串保存在节点对象中,然后运行行
print('looks like {}'.format(node_obj))
我收到错误
'ascii' codec can't encode character error '\u2212' in position 941: ordinal not in range(128)
在我看来,Python3 中的 print 函数正在尝试将 unicode 字符串转换为 ascii! (使用 ascii 编码转换为字节对象?)
是否可能是我的 FreeBSD 服务器不支持 UTF-8,导致 Python 的打印功能进行此转换?或者也许字符串一开始就没有被正确地清理过,我应该在 javascript 第一次从用户那里收到它时这样做?
让我知道哪些信息对您有用。
locale
命令说什么?
您可以使 Python 与 LANG=en_US.UTF-8
或 PYTHONIOENCODING=utf-8
一起使用 utf-8。
在默认环境中设置LANG是platform-dependent:https://unix.stackexchange.com/questions/342817/how-do-i-add-a-language-in-freebsd