问题分析解决——中文乱码

在开发的时候不可避免的会遇到一些中文乱码,这次我来介绍总结一下我遇到的中文乱码。

首先,在发现提交上去的表单中文乱码的时候先检查是否是配置的问题。

“硬件”检查:

1.检查myEclipse的编码是否为UTF-8

2.检查是否是jsp或html页面字符集编码设置错误

3.检查doPost方法中,参数获取是否设置了。

如果以上都符合,那么你就是代码出了错。

所以我们要对代码进行仔细的检查,判断是否是因某个不注意的方法,导致中文乱码。

4.修改tomcat中的默认编码

——去tomcat的工作目录下,找到server.xml文件

  增加如下图红框中内容

“软件”检查:

因为这个每个人的问题都不太一样,所以我就记录一下我的错误,以供自己备忘。参考价值。。因人而异

1.中文乱码成????,每个中文都对应一个问号

——具体情况:乱用方法,强制把utf-8编码的字符 转成 tomcat的默认编码 ISO-8859-1 ,再转成utf-8

  我是这么干的,

String note =  new String(req.getParameter("note").getBytes("ISO-8859-1"), "UTF-8");

   ——这就是被自己强制中文乱码了。。。一开始没检查清楚,就盲目调整。。所以说,“硬件”检查非常重要。

2.中文在base64加密的时候被加密成错乱的字符

——具体情况:中文:我就是想来一个家的积极计算机的理解啊上来看见的地方很多

      base64加密再通过工具解密出来的数据:Β?ǐ??????ā??4??

  

——解决:经过各种纠错,发现首先输入输出的字符都是utf-8,所以排除了因编码错误导致的问题;

    其次,检查是否是加密手段造成的中文乱码,对比两次不同加密方法加密后的字符串,发现并不是

    再者,将原字符串放到在线加密工具加密,对比加密后的字符串,发现是中文在加密时乱码导致的

    最后,代码体现修改手段(加红部分即为我所修改的,并成功纠正中文乱码错误)。   

String enParams = new BASE64Encoder().encode(strParams.getBytes("utf-8"));

  以上,就是我暂时遇到的中文乱码问题。

时间: 2024-10-19 13:59:36

问题分析解决——中文乱码的相关文章

【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...

这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问题的可能有很多,别人的解决方案也许并不适合自己. 那先看看问题出现在哪了,报错如下: 发现的确是编码错误, 16进制的错误提示(\xF0\x9F\x94\xA5\x

通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &#39;\xF0...

原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了. 一.定位错误 定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟“不是所有的牛奶都叫特仑苏”. 引起同一个问

通俗易懂地解决中文乱码问题(1) --- 跨平台乱码

原文:[原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 本来是只打算写一篇关于中文乱码的blog的,但是发现要讲的东西跨度有点大,不好写到同一篇里面,所以分开了. 另一篇是  <[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...> . 这一篇重点在编码的理论,另一篇重点在解决问题及思路. 一.问题的开始 中文乱码问题经常出现在实际工程中,尤其容易发生在经验不足的团队对问题预估不

Python3.x:BeautifulSoup()解决中文乱码问题

Python3.x:BeautifulSoup()解决中文乱码问题 问题: BeautifulSoup获取网页内容,中文显示乱码: 解决方案: import requests from bs4 import BeautifulSoup html = requests.get(url, headers=Hostreferer) soup = BeautifulSoup(html.content, "html.parser", fromEncoding="gb18030"

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来

linux基础-zabbix解决中文乱码问题 (因为版本太新的问题,没有测试成功)

zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [[email protected] ~]# cd /var/www/html/zabbix/fonts/ [[email protected] fonts]# rz -yrz waiting to receive.???a? zmodem ′???£ °′ Ctrl+C ???£??′?? msyh.ttf...

解决中文乱码过滤器

解决中文乱码过滤器 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;

java解压多目录Zip文件(解决中文乱码问题)--转载

原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import org.apache.tools.zi

javaEE:day2-servlet生命周期、提交解决中文乱码、tomcat加载jar包或类文件的顺序

servlet生命周期 生命周期简介: servlet在服务器第一次被请求的时候new出来,并初始化(即init())再调用service方法.这个实在服务器中new出来,然后用HashMap加的,与客户端无关.客户端之后访问只调用这个servlet的service方法. 具体分为4步: 1 构造方法 :服务器在被客户端第一次请求的时候运行 仅在服务器中运行一次 2 init方法:客户端第一次访问服务器的时候在服务器中进行初始化 仅一次.并且可以通过config参数在 web.xml中通过(ke