日期:2014-05-16  浏览次数:20369 次

关于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") );

        这样,将处理后的字符串存入数据库就可以避免出现乱码了。