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

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

"

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

相关文章
|
7月前
|
JSON Java 应用服务中间件
JavaWeb项目之乱码问题及如何解决
JavaWeb项目之乱码问题及如何解决
|
5月前
|
机器学习/深度学习 敏捷开发 人工智能
编码之旅:从Bug到Mastery
在编程的世界里,每一个软件工程师都是一位冒险者,他们的代码是构建虚拟王国的砖石。本文将带领读者穿梭在编程的迷宫中,探索那些令人头疼的Bug背后隐藏的成长秘密。我们将一起回顾编程语言的发展史,探讨现代编程实践,并分享个人在解决复杂问题过程中的经验与心得。这不仅是一次技术上的提升之旅,更是对编程艺术深刻理解的追求。
|
5月前
|
机器学习/深度学习 人工智能 算法
编码之旅:从Bug到Breakthrough
在编程的世界里,每一个错误代码都潜藏着成长的种子。本文将带你穿梭于代码行间,探索那些令人头疼的Bug如何成为技术突破的催化剂。我们将一起回顾编程实践过程中的挑战与收获,分享那些将失败转化为成功的经验教训,并展望编程未来的发展趋势。这不仅是一段关于技术提升的旅程,更是一次心灵的洗礼和思维的升华。
|
7月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.5、解决putText中文乱码问题
OpenCV这么简单为啥不学——1.5、解决putText中文乱码问题
419 0
OpenCV这么简单为啥不学——1.5、解决putText中文乱码问题
|
Java 应用服务中间件
第一季:9SpringMVC中如何解决POST请求中文乱码问题,GET的又如何处理呢【Java面试题】
第一季:9SpringMVC中如何解决POST请求中文乱码问题,GET的又如何处理呢【Java面试题】
78 0
|
Java 关系型数据库 MySQL
JavaWeb 乱码问题终极解决方案!
JavaWeb 乱码问题终极解决方案!
|
XML 前端开发 JavaScript
web开发标准是什么意思?底层原理是什么?
web开发标准是什么意思?底层原理是什么?
144 0
|
Java
JavaWeb| JSTL标签库看这篇文章就够了!(含案例)
JavaWeb| JSTL标签库看这篇文章就够了!(含案例)
405 0
JavaWeb| JSTL标签库看这篇文章就够了!(含案例)
|
Web App开发 编解码 网络协议