Json传输出现中文乱码问题的解决办法
作者:大羊腿188 时间:2022-06-23 06:38:04
针对最近练习项目时出现的乱码问题 -- 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个转换器更为方便.
来源:https://blog.csdn.net/weixin_61620939/article/details/128660983
标签:json,中文,乱码
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
基于spring security实现登录注销功能过程解析
2023-11-29 06:09:05
![](https://img.aspxhome.com/file/2023/8/59378_0s.png)
Java继承的问题引导和测试代码
2023-03-13 18:50:34
![](https://img.aspxhome.com/file/2023/8/96078_0s.jpg)
String类型传递是值传递,char[]类型传递是引用传递的实现
2022-06-01 09:33:44
Springboot实现给前端返回一个tree结构方法
2022-04-02 23:37:07
![](https://img.aspxhome.com/file/2023/9/84699_0s.png)
全面详解Maven打包及其相关插件和高级特性
2022-03-03 21:10:00
C#中DataTable排序、检索、合并等操作实例
2022-08-22 04:58:03
IDEA集成MyBatis Generator插件的使用
2023-08-12 00:28:47
![](https://img.aspxhome.com/file/2023/6/57896_0s.png)
浅谈Java自定义类加载器及JVM自带的类加载器之间的交互关系
2021-09-12 23:37:24
![](https://img.aspxhome.com/file/2023/0/66510_0s.jpg)
winform用datagridview制作课程表实例
2023-11-24 06:08:28
![](https://img.aspxhome.com/file/2023/5/87035_0s.jpg)
C#中POST接口formdata传参模板的记录
2022-03-30 01:58:50
复杂JSON字符串转换为Java嵌套对象的实现
2023-07-02 05:40:26
java实现简单的英文文本单词翻译器功能示例
2023-11-28 10:22:15
![](https://img.aspxhome.com/file/2023/8/59178_0s.png)
Spring AOP底层源码详解
2022-03-12 02:00:26
三道java新手入门面试题,通往自由的道路--锁+Volatile
2023-09-04 20:33:42
![](https://img.aspxhome.com/file/2023/7/68717_0s.jpg)
关于Java的ArrayList数组自动扩容机制
2021-11-26 13:12:46
java的线程池框架及线程池的原理
2023-11-16 22:04:51
解决IDEA和CMD中java命令提示错误: 找不到或无法加载主类的问题
2023-09-19 02:31:16
![](https://img.aspxhome.com/file/2023/2/101922_0s.png)
Android开发 旋转屏幕导致Activity重建解决方法
2022-03-02 06:00:23
Android如何让APP无法在指定的系统版本上运行(实现方法)
2022-10-16 03:24:46
![](https://img.aspxhome.com/file/2023/2/89532_0s.png)
浅析Android文件存储
2023-06-16 09:07:37
![](https://img.aspxhome.com/file/2023/0/96790_0s.jpg)