在我的服务器上,Python 脚本以元组形式从数据库获取数据。然后,脚本将元组转换为字符串(使用 json.dumps()),以传递到用户浏览器中的 JavaScript 脚本。
数据包括德国名字,例如Weidmüller。当 Python 脚本获取该数据时,它会将其返回为 Weidm\xfcller,其中 \xfc 是 ü 的 UTF-8 编码。到目前为止一切顺利。
但是,
我真正想要的是 json.dumps 保留 UTF-8 编码字符;按原样传递 \xfc 。这样用户浏览器中的 JavaScript 脚本就可以进行解码。 这可能吗?
或者,我是否错误地处理了这个问题?
\xfc
不是 ü 的 UTF-8 编码,而是 latin-1 编码。
>>> 'ü'.encode('latin')
b'\xfc'
>>> 'ü'.encode('utf-8')
b'\xc3\xbc'
如果您
json.dump
文本,您不应该得到这样的替换字符:
>>> json.dumps({"k": "Weidmüller"})
'{"k": "Weidm\\u00fcller"}'
>>> json.dumps({"k": "Weidmüller"}, ensure_ascii=False)
'{"k": "Weidmüller"}'
首先检查以确保您从数据库中获取的内容是正确解码的文本。