如何解决JSON返回的中文乱码?

如右返回"text":"娴嬭瘯@绛夐绛夐洦绛夐洦瀛?,请问如何处理?我这样处理:Stringa=newString(json.getBytes(),"UTF-8");中文... 如右 返回 "text":"娴嬭瘯@绛夐绛夐洦绛夐洦瀛?, 请问如何处理?我这样处理:String a =new String(json.getBytes(),"UTF-8");中文大部分能够正常显示了,但是还有少部分是"?",请问怎么解决? 展开
 我来答
我是小小kei
推荐于2018-06-22 · TA获得超过1.6万个赞
知道小有建树答主
回答量:113
采纳率:84%
帮助的人:2万
展开全部
  • 【 解决方法】:

  1. @RequestMapping(value="/getphone",produces = "text/plain;charset=utf-8")

  2. /**输入手机号码后判断手机号是否存在*/
    @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中添加】:

  1. <!-- 处理请求返回json字符串的中文乱码问题 -->

  2. <mvc:annotation-driven>
    <mvc:message-converters>
    <bean

  3. 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>

zhaopeiqiong
2018-06-21 · TA获得超过347个赞
知道小有建树答主
回答量:184
采纳率:91%
帮助的人:27.8万
展开全部
一个国标一个通标 数据库编码 和你java的编码格式不一致,看起来像是 GBK--》UTF8 你的java 是gbk 数据库是UTF8 数据库编码 和你java的编码统一都用GBK、GB2312应该没有问题

服务器返回的是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分也是拼了 解决了请点赞 没决绝也别踩 为你百度半天
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DoramiHe
2018-06-22 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
使用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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尔离好活笑4
2018-06-22 · TA获得超过2049个赞
知道小有建树答主
回答量:1521
采纳率:87%
帮助的人:204万
展开全部
服务器是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");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闻心法师
2018-06-21 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:100%
帮助的人:9.9万
展开全部
你的json 字符串的内容本来就乱码了吧
你可以在获取字符串 json的地方做编码处理
你的代码是 字符串->byte[]->字符串 所以那个UTF8 可能效果不到
如果解决乱码的话 需要的是 byte[]->转字符串
转码应该在JSON 之前 不知在json 之后
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式