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

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

"

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

相关文章
【记录】有关接口响应很快,但是在页面渲染的时候发现很慢的问题
【记录】有关接口响应很快,但是在页面渲染的时候发现很慢的问题
266 0
|
11月前
|
存储 开发工具 数据安全/隐私保护
git报错The project you were looking for could not be found 解决方式
git报错The project you were looking for could not be found 解决方式
2808 1
识图点击脚本,图片识别连点器,自动点击精灵【autojs】
主脚本实现基于模板匹配的自动点击功能,包含UI界面和参数配置。增强版提供了多目标识别和
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
18867 12
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
|
10月前
|
存储 Web App开发 安全
如何防范 CSRF 攻击
CSRF(跨站请求伪造)攻击是一种常见的安全威胁。防范措施包括:使用Anti-CSRF Token、检查HTTP Referer、限制Cookie作用域、采用双重提交Cookie机制等,确保请求的合法性与安全性。
|
Linux
Linux 目录 rc0.d 是干什么的
【6月更文挑战第22天】Linux 目录 rc0.d 是干什么的
519 55
|
SQL 关系型数据库 数据库连接
详解 Entity Framework(EF)核心组件与数据访问方法探索
Entity Framework是一个ORM框架,简化.NET开发者与数据库的交互。它始于.NET Framework的一部分,但现在可通过NuGet独立获取。ORM允许对象模型直接映射到数据库结构,避免直接编写SQL。
1640 2
详解 Entity Framework(EF)核心组件与数据访问方法探索
|
XML JavaScript 前端开发
如何在JavaScript中设置多个样式属性?
【6月更文挑战第29天】如何在JavaScript中设置多个样式属性?
727 3
|
算法 Unix 调度
操作系统(7)----调度相关知识点(万字总结~)(2)
操作系统(7)----调度相关知识点(万字总结~)
594 1
|
缓存 Java Linux
中文字体安装
中文字体安装
477 0

热门文章

最新文章