我需要使用 GET 请求通过 JavaScript 客户端将 JSON 发送到我的服务器,因此我开始回显响应以确保翻译过程中不会丢失任何内容。普通文本似乎没有问题,但是一旦我包含任何类型的 Unicode 字符(例如“ç”),该字符就会以某种方式编码(例如“\u00e7”)并且返回值不同于请求值。我主要关心的是,A)在我的 Python 代码中,保存了客户端想要正确发送到数据库的内容,并且B)我将发送的相同值回显给客户端(测试时)。
也许这意味着我不能使用 base64,或者必须一路做一些不同的事情。我对此表示同意。我的实现只是为了达到目的的一种尝试。
当前步骤(如果需要,可以更改任何步骤):
我想要发送到服务器的原始 JSON 字符串:
'{"weird-chars": "°ç"}'
JavaScriptBase64 编码 http://www.webtoolkit.info/javascript-base64.html通过 GET 参数传递到服务器的字符串版本(顺便说一句,编码字符串末尾的等号会导致任何问题吗?):
http://www.myserver.com/?json=eyJ3ZWlyZC1jaGFycyI6ICLCsMOnIn0=
Python str
结果来自b64decode
参数:
'{"weird-chars": "\xc2\xb0\xc3\xa7"}'
Python dict
from json.loads
解码后的参数:
{'weird-chars': u'\xb0\xe7'}
Python str
from json.dumps
那个dict
(以及随后输出到浏览器):
'{"weird-chars": "\u00b0\u00e7"}'