今天使用Ajax传递json字符串的时候,发现控制台输出的中文显示乱码。
解决方法:往JAVA代码中添加代码:String name = URLDecoder.decode(jsonstring, “UTF-8”);
(我的前端没有做任何改动)如下图就可以啦:
附加网上解决方法:
方法一:
AJAX中添加参数:contentType:“application/x-www-form-urlencoded:charset=UTF-8”,
不过没有解决我的问题。
方法二:
AJAX传值时采用的是UTF-8编码格式,客户端中文字符传输到服务器端时,如果服务器编码格式或者所采用的MVC框架的编码格式不是UTF-8,则很可能会出现中文乱码。
客户端用js函数encodeURI()对中文字符进行两次编码,服务器端采用URLDecoder类对客户端传输过来的中文字符进行UTF-8格式的解码。示例:
AJAX中data的值:
data:“name=”+encodeURI(encodeURI(“木心小白菜”)),
JAVA端的代码:
String name = URLDecoder.decode(“客户端传输过来的中文字符”,“UTF-8”);
这个方法也没有解决我的问题。
不过我的前端没有做任何处理,只是后端使用了String name = URLDecoder.decode(jsonstring, “UTF-8”);问题就解决了。
每个人的编码方式和逻辑不同,问题的解决方法也可能会不一样,对于问题的解决要根据自己的情况处理啊。