通常是因为两个文件的编码方式不同,解决方法自然是将两个文件的编码方式设置成一致的即可。
一般出现问题的有以下几种情况:1.基本jsp页面显示乱码,2.表单提交乱码,3.数据库乱码
一件商品页面乱码
解决方案:
(1).<%@ page language="java" pageEncoding="UTF-8"%> 我们都知道,jsp就是servlet,jsp会转换成servlet之后转换为相关的java代码再发给客户端。
2).<%@ page contentType="text/html;charset=UTF-8"%> charset="UTF-8",设置响应头编码方式为UTF-8。
3).<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
二.表单提交乱码
我们在使用表单提交中文时也会出现乱码,Tomcat服务器内部编码默认是iso8859-1,Tomcat会以编码的缺省方式利用iso8859-1来解析中文。
表单get方式提交时,服务器会用默认的编码对提交的数据进行解析,并添加到url后面传到下一个页面。
解决方法:在Tomcat 服务器的server.xml文件中进行配置,在Connector节点中加入useBodyEncodingForURI="true" URIEncoding=”UTF-8”,这样接收页面就会利用UTF-8进行解码了。
表单post方式提交时,提交的数据不再加入到url中,我们可以在web应用中添加一个servlet过滤器来设置编码统一(servlet过滤器会在访问设置的相关url之前执行)。
三。数据库乱码
对于大多数数据库的JDBC驱动程序,在Java程序和数据库之间传递数据都是以ISO8859-1为默认编码格式,所以,在程序中向数据库存储包含中 文的数据时,驱动程序受限把程序内部Unicode编码格式的数据转换为ISO8859-1编码,然后传递到数据库中,如果要解决数据库乱码问题,最简单的就是更改数据库默认编码格式。