为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
泛舟湖上清波郎朗 2019-03-13 10:06:08
如右 返回 "text":"娴嬭瘯@绛夐绛夐洦绛夐洦瀛?, 请问如何处理?我这样处理:String a =new String(json.getBytes(),"UTF-8");中文大部分能够正常显示了,但是还有少部分是"?",请问怎么解决?
查看完整描述

5 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

一个国标一个通标 数据库编码 和你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");

查看完整回答
反对 回复 2019-03-31
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

服务器是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");



查看完整回答
反对 回复 2019-03-31
?
开满天机

TA贡献1786条经验 获得超13个赞

  • 【 解决方法】:

  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>



查看完整回答
反对 回复 2019-03-31
?
PIPIONE

TA贡献1829条经验 获得超9个赞

你的json 字符串的内容本来就乱码了吧
你可以在获取字符串 json的地方做编码处理
你的代码是 字符串->byte[]->字符串 所以那个UTF8 可能效果不到
如果解决乱码的话 需要的是 byte[]->转字符串
转码应该在JSON 之前 不知在json 之后

查看完整回答
反对 回复 2019-03-31
  • 5 回答
  • 0 关注
  • 7482 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信