【发布时间】:2017-06-25 06:35:36
【问题描述】:
用户在我的网站上输入了一个字符串。他们输入一个非 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 编码转换为字节对象?)
有没有可能是我的 FreeBSD 服务器不支持 UTF-8,导致 Python 的 print 函数进行这种转换?或者可能一开始就没有对字符串进行适当的清理,当我第一次从用户那里收到它时,我应该在 javascript 中这样做?
让我知道哪些进一步的信息对您有用。
【问题讨论】:
标签: javascript python-3.x unicode encoding non-ascii-characters