乱码应该先找到问题的根源,这样才能方便解决项目中存在的乱码问题。

1、web容器编码
2、web.xml中的编码
3、workspace的编码
4、JDBC连接池的编码
5、DB(数据库编码)

造成乱码的常见原因;

1. Web项目的文件编码格式不一致。

任何文件(.class,.jsp,.xml)都有编码格式,所以在创建文件时一定要注意编码格式的统一,可以通过IDE或者其他开发工具预先设置好。

2. 输入输出时的编码格式

request、response的编码格式,解决该问题的常见办法是采用过滤器(filter)来统一设置request、response的编码格式。

3. url地址乱码

这是url中含有中文的问题。比如通过url传递中文参数时发生乱码,这个问题除了排查上述第2点之外,来要看的就是tomcat等服务器的编码格式了,比如查看tomcat的server.xml文件里的字符集设置。

4. 字符串编码格式

字符串本身是有编码格式的,有的时候为了安全考虑会为字符串特意设置某种编码格式导致乱码,这时只需通过相应的编码格式转码即可。

5. 数据库乱码

发现存入数据库中后乱码,在排除上述四点之后,查看数据库编码与项目是否一致。

一、jdbc链接数据库插入中文乱码:

首先通过jdbc连接数据库后插入数据时,你应该保证以下三处的编码方式相同(推荐utf-8编码方式)
1:根据实际情况请看图(IDEA右下角)点击UTF-8
2:数据库的编码方式或者说你数据表中字段的编码方式
3:jdbc连接的编码方式

二、浏览器显示乱码

很多人在servlet中明明用:

 
 
  1. request.setCharacterEncoding("UTF-8");
  2. response.setContentType("text/html; charset=UTF-8");

设置了编码方式,但是在用浏览器显示页面,还是会出现乱码,但是我们在开发工具中运行就可以显示出中文,原因在于:
你项目中设置的保存编码方式和浏览器的编码方式不一致所导致。
解决方案:
查看项目编码、查看浏览器编码。保证二者编码保持一致
检查错误时应该根据具体情况,找不到原因时按照文章开投的顺序逐级检查各级编码是否一致。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐