如何解决JSP页面显示乱码问题
创始人
2024-04-08 15:22:34
0

一、JSP页面显示乱码

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

  1.    
  2.    
  3. </FONT></STRONG>JSP的中文处理<STRONG><FONT color=#006699>   
  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. </FONT></STRONG>JSP的中文处理<STRONG><FONT color=#006699>   
  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. </FONT></STRONG>JSP的中文处理<STRONG><FONT color=#006699>   
  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. </FONT></STRONG>JSP的中文处理<STRONG><FONT color=#006699>   
    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. </FONT></STRONG>JSP的中文处理<STRONG><FONT color=#006699>   
    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开发中遇到的中文乱码的问题及解决办法写出来供大家参考。

    【编辑推荐】

    1. JSP连接ORACLE数据库时注意的一些问题
    2. JSP中tomcat的SQL Server2000数据库连接池的配置
    3. 简单介绍Servlets和JSP的区别
    4. JSP include指令和include行为的区别
    5. JSP输出excel文档和中文乱码问题的解决

    相关内容

    热门资讯

    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
    20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
    德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
    为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
    《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
    2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...