一文搞懂:中文乱码原因以及解决方案

简介: 一文搞懂:中文乱码原因以及解决方案

"

1.产生原因

  在项目中从JSP页面传回来的中文在后台接受时变为乱码,因为JSP默认参数在传输过程中使用的编码为ISO-8859-1,而页面常用的是UTF-8编码,所以导致中文传回来是乱码,而英文没问题,ISO-8859-1就是英文编码。

  UTF-8是国际网络通用编码,是Unicode编码的网络实现版,当然兼容中英文。

  关于计算机编码,我可以推荐一个知乎上文章,链接如下:

2.最佳解决方法

  2.1.在后台编写filter,将请求的参数都转换为UTF-8,代码如下:

package com.zy.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class EncodingFilter implements Filter{

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)

throws IOException, ServletException {

//doFilter方法的第一个参数req,是ServletRequest 类型的,不支持setCharacterEncoding,

//所以要先强制转换为HttpServletRequest

HttpServletRequest request = (HttpServletRequest)req;

HttpServletResponse response = (HttpServletResponse)res;

req.setCharacterEncoding(""UTF-8"");

chain.doFilter(request, response);

}

@Override

public void //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQxMTUzMg==.html

init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

}

  2.2.修改web.xml配置,添加编码filter,代码如下:

[/span>filter

[/span>filter-name

[/span>filter-class

[/span>filter-mapping

//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQwNjkxMg==.html

[/span>filter-name

[/span>url-pattern


"
image.png

相关文章
|
2月前
|
JSON Java 应用服务中间件
JavaWeb项目之乱码问题及如何解决
JavaWeb项目之乱码问题及如何解决
|
2月前
|
编解码 JavaScript 编译器
[字符编码] 实战篇:QT中文乱码的解决办法
[字符编码] 实战篇:QT中文乱码的解决办法
889 0
|
11月前
|
Java 应用服务中间件
第一季:9SpringMVC中如何解决POST请求中文乱码问题,GET的又如何处理呢【Java面试题】
第一季:9SpringMVC中如何解决POST请求中文乱码问题,GET的又如何处理呢【Java面试题】
47 0
|
11月前
|
Java 关系型数据库 MySQL
JavaWeb 乱码问题终极解决方案!
JavaWeb 乱码问题终极解决方案!
|
应用服务中间件
主要介绍了解决IDEA控制台乱码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
主要介绍了解决IDEA控制台乱码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
|
运维 监控 Java
【高效编码】JDK自带的命令行工具的使用还用不清楚的地方?快来看看这篇文章吧!!!
您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们有啥想看的,想问的,欢迎积极留言告诉我喔。
136 0
【高效编码】JDK自带的命令行工具的使用还用不清楚的地方?快来看看这篇文章吧!!!
|
XML Java Android开发
JAVA开发中比较常见的解析方式
JAVA开发中比较常见的解析方式
90 0
|
Web App开发 编解码 网络协议

热门文章

最新文章