javascript - python3 打印函数发出 'ascii' codec can't encode character 错误

标签 javascript python-3.x unicode encoding non-ascii-characters

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

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

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

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 编码转换为 bytes 对象?)

有没有可能是我的 FreeBSD 服务器不支持 UTF-8,导致 Python 的 print 函数做这个转换?或者,也许字符串一开始就没有经过适当的清理,当我第一次从用户那里收到它时,我应该在 javascript 中这样做?

让我知道哪些信息对您有用。

最佳答案

locale 命令的含义是什么?

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

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

关于javascript - python3 打印函数发出 'ascii' codec can't encode character 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42099633/

相关文章:

javascript - 一行中两个元素调用一个函数

javascript - 如何以编程方式确定某些 JavaScript 代码是否失败或生成错误

javascript - 在 React 中使用 AJAX 获取服务器数据

python - 需要多少个数字才能使返回值等于整数 N?

java - 使用单选按钮更新 JPanel

c - Unicode 和命令提示符 (Windows)

javascript - 非 svg D3 工具提示在拖动时不更新

Python Asyncio 任务在没有 gather() 的情况下运行

python - `in` 比 `__contains__` 有多少优化?

php - 如何将 unicode 转换为 php 中的阿拉伯字符?