如何解决JSP页面显示乱码问题

一、JSP页面显示乱码

创新互联建站-专业网站定制、快速模板网站建设、高性价比宝山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式宝山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖宝山地区。费用合理售后完善,十余年实体公司更值得信赖。

下面的显示JSP页面(display.jsp)就出现乱码:

 
 
 
  1.    
  2.    
  3. </strong>JSP的中文处理<strong>   
  4.  http-equiv="Content-Type" content="text/html; charset=gb2312">   
  5.    
  6.    
  7. <%   
  8. out.print("JSP的中文处理");   
  9. %>   
  10.    
  11.  

对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的***行加上:

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

就可以消除乱码了。完整页面如下:

 
 
 
  1. <%@ page contentType="text/html; charset=gb2312"%>   
  2.    
  3.    
  4. </strong>JSP的中文处理<strong>   
  5.  http-equiv="Content-Type" content="text/html; charset=gb2312">   
  6.    
  7.  
  8.    
  9. <%   
  10. out.print("JSP的中文处理");   
  11. %>   
  12.    
  13.  

二、表单提交中文时出现乱码

下面是一个提交页面(submit.jsp),代码如下:

 
 
 
  1.    
  2.    
  3. </strong>JSP的中文处理<strong>   
  4.  http-equiv="Content-Type" content="text/html; charset=gb2312">   
  5.    
  6.    
  7.  name="form1" method="post" action="process.jsp">   
  8.  align="center">   
  9.  type="text" name="name">   
  10.  type="submit" name="Submit" value="Submit">   
   
  •    
  •    
  •  
  • 下面是处理页面(process.jsp)代码:

     
     
     
    1. <%@ page contentType="text/html; charset=gb2312"%>   
    2.    
    3.    
    4. </strong>JSP的中文处理<strong>   
    5.  http-equiv="Content-Type" content="text/html; charset=gb2312">   
    6.    
    7.    
    8. <%=request.getParameter("name")%>   
    9.    
    10.  

    如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下:

     
     
     
    1. <%@ page contentType="text/html; charset=gb2312"%>   
    2. <%   
    3. request.seCharacterEncoding("gb2312");   
    4. %>   
    5.    
    6.    
    7. </strong>JSP的中文处理<strong>   
    8.  http-equiv="Content-Type" content="text/html; charset=gb2312">   
    9.    
    10.  
    11.    
    12. <%=request.getParameter("name")%>   
    13.    
    14.  

    三、数据库连接出现乱码

    只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。

    四、数据库的显示乱码

    在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:

     
     
     
    1. public String iso2gb(String qs)   
    2. {   
    3. try{   
    4. if (qs == null) return "NULL";   
    5. else   
    6. {   
    7. return new String(qs.getBytes("iso-8859-1"),"gb2312");   
    8. }   
    9. }   
    10. catch(Exception e){   
    11. System.err.println("iso2gb error:"+e.getMessage());   
    12. }   
    13. return "NULL";   
    14. }   
    15. public String gb2iso(String qs)   
    16. {   
    17. try   
    18. {   
    19. if (qs == null) return "NULL";   
    20. else {   
    21. return new String(qs.getBytes("gb2312"),"iso-8859-1"); }   
    22. }   
    23. catch(Exception e){ System.err.println("gb2iso error:"+e.getMessage());}   
    24. return "NULL";   

    以上是开发过程中,JSP页面经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。

    分享名称:如何解决JSP页面显示乱码问题
    转载来源:http://www.shufengxianlan.com/qtweb/news26/47476.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联