Json传输出现中文乱码问题的解决办法

 更新时间:2023年05月31日 11:50:48   作者:大羊腿188  
最近遇到一个问题,就是将中文消息以json格式推给微信服务器时,收到的消息是乱码,所以下面这篇文章主要给大家介绍了关于Json传输出现中文乱码问题的解决办法,需要的朋友可以参考下

针对最近练习项目时出现的乱码问题 -- tomcat编码出现的问题

问题出现原因:

web.xml中已经加了中文过滤器和json数据转换器,但依旧出现乱码,这是因为tomcat默认的编码格式是 iso-8859-1,所以会出现乱码.

解决方式1: 将编码方式直接改为UTF-8

/**
     * 分页条件查询
     */
    public void selectByPagesAndCondition(HttpServletRequest req,HttpServletResponse resp) throws IOException{
        //获取数据当前页码与展示条数 url?currentPage=1&pageSize=5
        int currentPage = Integer.parseInt(req.getParameter("currentPage"));
        int pageSize = Integer.parseInt(req.getParameter("pageSize"));
        //接收brand数据
        BufferedReader reader = req.getReader();
        String s = reader.readLine();
        s = new String(s.getBytes("ISO-8859-1"),"UTF-8");
        System.out.println(s);
        Brand brand = JSONObject.parseObject(s, Brand.class);
        PageBean<Brand> pageBean = brandService.selectByPagesAndCondition(currentPage, pageSize,brand);
        String StrJSON = JSON.toJSONString(pageBean);
        //返回数据的JSON格式
        resp.setContentType("text/json;charset=utf-8");
        resp.getWriter().write(StrJSON);
    }

解决方式2:因是maven加的tomcat插件原因,修改其编码格式

   <build>
        <plugins>
            <!-- 配置Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <port>8080</port>  
                    <path>/</path>
                    <uriEncoding>utf-8</uriEncoding>  <!--指定编码格式 -->
                </configuration>
            </plugin>
        </plugins>
    </build>

在没有用springmvc时,可添加该句解决post请求的乱码问题:

request.setCharacterEncoding("UTF-8");

一般的响应乱码

a:设置response的字符流的编码方式为UTF-8;如:
response.setCharacterEncoding(“UTF-8”);

b:设置浏览器解码是用UTF-8的码表来解码;如:
response.setHeader(“content-type”, “text/html;charset=UTF-8”);
可两者配合使用

以注解形式解决json串数据格式响应乱码问题

@RequestMapping(produces = {"text/html;charset=utf-8"})

 若原来方法只写了匹配路径,默认可不写value属性 如: @requestMapping(“/login.do”)等

多属性时要添加属性名,改为

@requestMapping(value="/login.do",produces = {"text/html;charset=utf-8"})

缺点: 每个方法都要添加这个produces属性,所以直接在springmvc.xml添加2个转换器更为方便. 

总结

到此这篇关于Json传输出现中文乱码问题的解决办法的文章就介绍到这了,更多相关Json传输中文乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文探索Apache HttpClient如何设定超时时间

    一文探索Apache HttpClient如何设定超时时间

    Apache HttpClient是一个流行的Java库,用于发送HTTP请求,这篇文章主要为大家介绍了Apache HttpClient如何设定超时时间,感兴趣的小伙伴可以学习一下
    2023-10-10
  • Spring Boot 中的 @PutMapping 注解原理及使用小结

    Spring Boot 中的 @PutMapping 注解原理及使用小结

    在本文中,我们介绍了 Spring Boot 中的 @PutMapping 注解,它可以将 HTTP PUT 请求映射到指定的处理方法上,我们还介绍了 @PutMapping 注解的原理以及如何在 Spring Boot 中使用它,感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • java读取邮件excel附件的方法过程示例

    java读取邮件excel附件的方法过程示例

    这篇文章主要介绍了java读取邮件excel附件的方法过程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringBoot学习之全局异常处理设置(返回JSON)

    SpringBoot学习之全局异常处理设置(返回JSON)

    本篇文章主要介绍了SpringBoot学习之全局异常处理设置(返回JSON),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Java中的HashMap源码分析

    Java中的HashMap源码分析

    这篇文章主要介绍了Java中的HashMap源码分析,散列表是根据关键码值(Key value)而直接进行访问的数据结构,也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表,需要的朋友可以参考下
    2023-09-09
  • 详解Java8新特性如何防止空指针异常

    详解Java8新特性如何防止空指针异常

    要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的,不要说初级程序员会碰到, 即使是中级,专家级程序员稍不留神,就会掉入这个坑里,本文就和大家聊聊Java8新特性如何防止空指针异常
    2023-08-08
  • java+selenium实现滑块验证

    java+selenium实现滑块验证

    现在越来越多的网站都使用采用滑块验证来作为验证机制,用于判断用户是否为人类而不是机器人,本文就将利用java和selenium实现滑块验证,希望对大家有所帮助
    2023-12-12
  • 分享Java常用几种加密算法(四种)

    分享Java常用几种加密算法(四种)

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。本文给大家分享java常用的几种加密算法,需要的朋友可以参考下
    2015-10-10
  • 快速了解JAVA中的Random()函数

    快速了解JAVA中的Random()函数

    这篇文章主要介绍了JAVA中的Random()函数的使用方法,文中代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 解决Weblogic部署war找不到spring配置文件的问题

    解决Weblogic部署war找不到spring配置文件的问题

    这篇文章主要介绍了解决Weblogic部署war找不到spring配置文件的问题,具有很好的参考价值,希望对大家有所帮助。
    2021-07-07

最新评论