JSP乱码问题解决

1.取得传递的参数若为英文字母可以正常显示,若为中文则为乱码,很多情况下是"???",这是因为浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。这种情况下的解决方法:

在获取传递参数之前加入以下代码:

<% request.setCharacterEncoding("gb2312"); %>

2.在建立JSP页面时应该注意在jsp页面的头部加入一下代码  

<%   page   contentType="text/html;   charset=gb2312"   %>

  此方法是解决JSP页面本身显示时的乱码。

3.有时还需在HTML代码中的<head></head>中加入这句  

<meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">
4.在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码  
<form   enctype="multipart/form-data"></form> 

5.在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下  
  String   str=new   String(strName.getBytes(“iso-8859-1”),”GB2312”);  
  具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String   str=new   String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);  
  这样,存入数据库的数据库的数据就可见了。 

6.对于页面间的参数传递也可以用这个方法来处理乱码问题:  
        public   String   getStr(String   str)  
        {  
                try  
        {  
              String   temp_p=str;  
      byte[]   temp_t=temp_p.getBytes("ISO8859-1");  
      String   temp=new   String(temp_t);  
      return   temp;  
        }  
        catch(Exception   e)  
        {}  
        return   "null";  
  }  


posted @ 2011-10-14 19:45  lihui_yy  阅读(167)  评论(0编辑  收藏  举报