关于JSP页面乱码的问题
1. 页面显示时出现乱码
这个主要跟字符编码有关,在生成JSP页面时,可以指定编码方式以避免出现页面显示乱码。
例如:<%@ page language="java" contentType="text/html;charset=gb2312"%>
通过contentType="text/html;charset=gb2312"指定编码方式。
2. 通过GET方法或超链接进行参数传递时出现乱码
例如,在页面设置一个超链接,当跳转到下一个页面时要传递一些参数(中文)。
<a href="news.jsp?title=要传的中文参数">查看评论</a>
这个时候要不进行任何设置,在news.jsp页面中显示出来的title参数的内容可能为乱码。
现在解决方法如下:
在Tomcat安装路径下conf 文件夹里找到server.xml文件,修改里面的内容。
<Connector port="8089" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" uRIEncoding="gb2312" />
相比原来的xml配置文件,多了最后一行:uRIEncoding=“gb2312”。
通过这样设置可以避免GET参数或超链接参数传递出现乱码。
3. 进行数据库操作时出现的乱码
我现在用的是SQL Server 2000 数据库。当在数据库中存储好中文数据时,在JSP中读取
数据没有出现乱码。但当在JSP页面中通过Form表单传入中文数据,再插入到SQL Server 数
据库中时就会出现乱码(在数据库中也显示为乱码)。
解决方法如下:
在Java(或JSP)中,向数据库中插入数据之前先进行编码处理。
从Form表单(或其它方式)传入的字符串: String oldStr = "一些中文数据";
编码处理:String newStr = new String( oldStr.getBytes("iso8859_1") );
这样,将处理后的字符串存入数据库就可以避免出现乱码了。