中文乱码之 表单提交数据中文乱码
在开发的时候不可避免的会遇到一些中文乱码,这次我来介绍总结一下我遇到的中文乱码。
首先,在发现提交上去的表单中文乱码的时候先检查是否是配置的问题。
“硬件”检查:
1.检查myEclipse的编码是否为UTF-8
2.检查是否是jsp或html页面字符集编码设置错误
3.检查doPost方法中,参数获取是否设置了。
如果以上都符合,那么你就是代码出了错。
所以我们要对代码进行仔细的检查,判断是否是因某个不注意的方法,导致中文乱码。
4.修改tomcat中的默认编码
——去tomcat的工作目录下,找到server.xml文件
增加如下图红框中内容
“软件”检查:
因为这个每个人的问题都不太一样,所以我就记录一下我的错误,以供自己备忘。参考价值。。因人而异
1.中文乱码成????,每个中文都对应一个问号
——具体情况:乱用方法,强制把utf-8编码的字符 转成 tomcat的默认编码 ISO-8859-1 ,再转成utf-8
我是这么干的,
1 | String note = new String(req.getParameter( "note" ).getBytes( "ISO-8859-1" ), "UTF-8" ); |
——这就是被自己强制中文乱码了。。。一开始没检查清楚,就盲目调整。。所以说,“硬件”检查非常重要。
2.中文在base64加密的时候被加密成错乱的字符
——具体情况:中文:我就是想来一个家的积极计算机的理解啊上来看见的地方很多
base64加密再通过工具解密出来的数据:Β͊Ǐ뀴һҵĻƋ㻺Ā�ɏ4ĵط
——解决:经过各种纠错,发现首先输入输出的字符都是utf-8,所以排除了因编码错误导致的问题;
其次,检查是否是加密手段造成的中文乱码,对比两次不同加密方法加密后的字符串,发现并不是
再者,将原字符串放到在线加密工具加密,对比加密后的字符串,发现是中文在加密时乱码导致的
最后,代码体现修改手段(加红部分即为我所修改的,并成功纠正中文乱码错误)。
1 | String enParams = new BASE64Encoder().encode(strParams.getBytes( "utf-8" )); |
以上,就是我暂时遇到的中文乱码问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决