如何解决JSON返回的中文乱码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决JSON返回的中文乱码?相关的知识,希望对你有一定的参考价值。
如右 返回 "text":"娴嬭瘯@绛夐绛夐洦绛夐洦瀛?, 请问如何处理?我这样处理:String a =new String(json.getBytes(),"UTF-8");中文大部分能够正常显示了,但是还有少部分是"?",请问怎么解决?
【 解决方法】:
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
/**输入手机号码后判断手机号是否存在*/
@RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")
@ResponseBody
public String getphone(String phone,HttpSession session)
Users u=service.selectPhoneService(phone);
if(u==null)//如果为空,则需要注册
String str="请您先注册,再登录。";
session.setAttribute("str", str);
return "请您先注册,再登录。";
return "true";
【方法二,在spring-mvc.xml中添加】:
<!-- 处理请求返回json字符串的中文乱码问题 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
服务器返回的是utf-8,jsp页面上也是utf-8,数据库也是utf-8怎么就是乱码呢!!!!问题出在getHttpResponse 输入流!in = new BufferedReader(new InputStreamReader(connection.getInputStream()));改为in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
///////////以下如果都试过了还无效,你可以找找你的输入流输出流是不是有问题////////////////URLDecoder.decode(URLDecoder.decode(json, "GBK"), "UTF-8");response.setContentType("text/html;charset=utf-8");json =new String(json.getBytes(),"UTF-8");
为了50分也是拼了 解决了请点赞 没决绝也别踩 为你百度半天 参考技术B 使用jQuery ajax调用的返回json,中文乱码问题
Js代码如下:
$.ajax( url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function() alert('获取数据失败!'); , success: function(json) jsObject = eval(json); ); return jsObject;
Js代码
<span style="font-size: x-small;">$.ajax( url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function() alert('获取数据失败!'); , success: function(json) jsObject = eval(json); ); return jsObject;</span> action:
Java代码
JSONArray json = JSONArray.fromObject(SysList);//SysList是一个List // 设置response的ContentType解决中文乱码 response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(json.toString()); return null; Java代码 <span style="font-size: x-small;">JSONArray json = JSONArray.fromObject(SysList);//SysList是一个List // 设置response的ContentType解决中文乱码 response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(json.toString()); return null;</span> 参考技术C 服务器是UTF-8吗,数据库是UTF-8吗?
getHttpResponse 输入流的位置怎么写的?
如果是这样,in = new BufferedReader(new InputStreamReader(connection.getInputStream()));改成这样,in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
如果都试过了还无效,你可以看看你的输入流输出流是不是有问题
URLDecoder.decode(URLDecoder.decode(json, "GBK"), "UTF-8");
response.setContentType("text/html;charset=utf-8");
json =new String(json.getBytes(),"UTF-8"); 参考技术D 你的json 字符串的内容本来就乱码了吧
你可以在获取字符串 json的地方做编码处理
你的代码是 字符串->byte[]->字符串 所以那个UTF8 可能效果不到
如果解决乱码的话 需要的是 byte[]->转字符串
转码应该在JSON 之前 不知在json 之后
以上是关于如何解决JSON返回的中文乱码?的主要内容,如果未能解决你的问题,请参考以下文章
C# 解决httplistener querystring 中文乱码返回json中文格式乱码
chrome 开发者工具中中文乱码,ajax请求返回的json串也不能自动格式化了,详见截图,求告知怎么设置...
使用 postman 测试站点,返回 json ,中文乱码--解决办法
SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码
spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500:no convertter for return value of type