Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 中文字符的JSON之间的转换错误_Jquery_Python 3.x_Json - Fatal编程技术网

Jquery 中文字符的JSON之间的转换错误

Jquery 中文字符的JSON之间的转换错误,jquery,python-3.x,json,Jquery,Python 3.x,Json,我有一根中国线“普派" 我希望使用HTTP POST请求将其从客户端传输到web服务器。在客户端,我使用以下jquery代码: $.ajax({ url: 'http://127.0.0.1:8000/detect/word', type: 'POST', data: JSON.stringify('普派'), success: function(msg) { alert(msg); } }); 在服务器端,我使用python 3.3:

我有一根中国线“普派" 我希望使用HTTP POST请求将其从客户端传输到web服务器。在客户端,我使用以下jquery代码:

$.ajax({
    url: 'http://127.0.0.1:8000/detect/word',
    type: 'POST',
    data: JSON.stringify('普派'),
    success: function(msg) {
        alert(msg);
    }
});
在服务器端,我使用python 3.3:

class DictRequestHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        post_data = self.rfile.read(int(self.headers['Content-Length']))
        post_var = json.loads(post_data.decode())
但是结果(
post\u var
)是混乱的。类型为
bytes
的变量
post\u data
是:
b''\xc3\xa6\xe2\x84\xa2\xc2\xae\xc3\xa6\xc2\xb4\xc2\xbe'',但要正确转换,它应该是b'\u666e\u6d3e''(通过
json.dumps('普派“”.encode()
)。您能帮我解决这个问题吗?非常感谢。

JSON.stringify(“”)的结果普派')取决于源文件的编码。请记住,引号之间的内容实际上只是一堆字节,只有编辑器(或浏览器)将其显示为普派'.
如果浏览器正确地检测到您的源代码,那么这并不重要,但如果不正确,那么您最终将成为垃圾。
因此,请确保提供正确的文件编码(最好是utf-8)

要独立于这种依赖于浏览器的解释,请尝试将其更改为
JSON.stringify(“\u666e\u6d3e”)

json标准并不要求编码时必须用teir unicode转义序列替换unicode字符。 它只是定义了编码,并允许json字符串中包含“任何unicode字符”,因此如果将给定字符编码为utf-8,则
json.stringify
的结果不会出错。

任何一个都可以,因此您应该在服务器端看到
b''\xe6\x99\xae\xe6\xb4\xbe'

我将html文件另存为utf-8编码,并使用file-bi命令检查它,我还添加了“contentType:”text/plain;charset=utf-8”,“在$.ajax函数调用中,但同样的问题仍然存在——我总是得到错误的\xc3\xa6\xe2\x84\xa2\xc2\xae\xc3\xa6\xc2\xb4\xc2\xbe。我不能使用JSON.stringify(“\u666e\u6d3e”),因为jquery不知道如何转换普派 到\u666e\u6d3e(我是用python得到的)或\xe6\x99\xae\xe6\xb4\xbe。问题是,编码JSON.stringify用于转换什么普派 到\xc3\xa6\xe2\x84\xa2\xc2\xae\xc3\xa6\xc2\xb4\xc2\xbe?如何检查?