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

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

"

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

相关文章
|
Java 关系型数据库 MySQL
Java中文乱码浅析及解决方案
Java中文乱码浅析及解决方案
|
9月前
|
域名解析 运维 负载均衡
阿里云DNS云解析有必要购买吗?免费版和收费版域名解析有啥区别?
阿里云DNS免费版适合基础解析需求,付费版提供100% SLA保障、更小TTL(最低1秒)、更多解析线路及IP支持,具备攻击防御、DNSSEC等高级功能。个人版低至19.9元/年,企业版适合高可用场景,尊享版支持专家服务与无限解析记录,适用于对稳定性要求高的业务。
2588 2
|
10月前
|
JSON 数据可视化 测试技术
手把手搭建自动化质量门禁:让你的每次部署都“无忧”
本文介绍如何利用Dify工作流搭建自动化质量门禁系统,通过集成测试覆盖、性能指标等多维度数据,实现上线前的自动检查与决策。该系统可有效降低人工核对成本,确保发布质量,让团队交付更可靠。
|
11月前
|
机器人 数据中心
Dataphin功能Tips系列(79)精准获知标准更新动态,协同治理更高效
Dataphin支持数据标准变更订阅,可实时通过站内信、邮箱或钉群机器人通知相关人员,确保业务及时响应。用户可通过标准列表、个人中心等入口批量订阅,变更消息包含状态、版本及跳转链接,便于快速查看与处理。
334 8
|
11月前
|
运维 监控 安全
数据安全:网络时间同步构建信息化堡垒
NTP网络授时服务器构建统一时间坐标系,支持北斗/GPS高精度授时,具备高稳守时、高并发处理与安全认证能力,广泛应用于金融、电力、交通、政务及工业互联网,保障系统时序一致与数据安全。
|
JSON 数据格式 C++
cpp struct json相互转换
使用 `nlohmann/json`库,可以简便地在C++中实现结构体与JSON之间的相互转换。通过定义序列化和反序列化函数,可以处理简单和复杂的结构体类型。这种方法不仅提高了代码的可读性和维护性,还增强了数据交换的灵活性。
1064 26
|
算法 搜索推荐 数据可视化
Beta分布与汤普森采样:智能决策系统概率采样的理论基础
在现代技术领域,算法决策优化成为核心竞争力的关键。Meta、Netflix和亚马逊等公司通过广告位置、缩略图及产品推荐的优化,显著提升了用户体验和商业效益。这些优化背后的共同点是采用了基于Beta分布的汤普森采样算法,有效解决了决策系统中探索与利用的平衡问题。通过从概率分布中随机采样来做出决策,汤普森采样不仅保证了对已知良好选项的充分利用,还维持了对潜在更优选项的探索,从而在实践中实现了高效且自适应的决策过程。
734 8
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2677 6
【超全详解】Maven工程配置与常见问题解决指南
|
Web App开发 JavaScript 前端开发
Node.js的优缺点是?
【8月更文挑战第4天】Node.js的优缺点是?
1070 4

热门文章

最新文章