解决JSP页面显示乱码问题

开发 后端
本文介绍解决JSP页面显示乱码问题的方法,以及介绍数据库的显示乱码和解决方法。

一、JSP页面显示乱码

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

三、数据库连接

大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到

的中文乱码的问题及解决办法写出来供大家参考。

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

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

对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的***行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。完整页面如下

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

二、表单提交中文时出现乱码
下面是一个提交页面(submit.jsp),代码如下:

  1. <html> 
  2. <head> 
  3. <title>JSP的中文处理title> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
  5. head> 
  6. <body> 
  7. <form name="form1" method="post" action="process.jsp"> 
  8. <div align="center"> 
  9. <input type="text" name="name"> 
  10. <input type="submit" name="Submit" value="Submit"> 
  11. div> 
  12. form> 
  13. body> 
  14. html> 

下面是处理页面(process.jsp)代码:

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

如果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. <html> 
  6. <head> 
  7. <title>JSP的中文处理title> 
  8. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
  9. head> 
  10.  
  11. <body> 
  12. <%=request.getParameter("name")%> 
  13. body> 
  14. html> 

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

四、数据库的显示乱码
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决JSP页面显示乱码问题了

【编辑推荐】

  1. 解决Servlet JSP页面乱码问题
  2. Servlet和JSP的安全问题
  3. 标签库中JSP Servlet调用
  4. Struts和JSP页面的技术
  5. 详解JSP服务器的安装
责任编辑:佚名 来源: IT168
相关推荐

2009-06-30 15:22:55

JSP页面

2009-07-07 13:42:57

Servlet JSP

2009-07-01 18:14:36

JSP乱码

2012-06-19 14:35:24

JSPJava乱码

2009-07-06 17:50:13

Java JSP

2009-06-30 13:49:21

excel文档Jsp

2009-07-01 18:05:54

JSP中文乱码

2009-07-02 13:26:32

JSP中文乱码

2010-08-06 10:49:16

FlexJsp

2010-02-06 16:13:49

Ubuntu Auda

2012-03-21 10:16:31

JavaJSP

2011-05-17 15:03:34

JSP

2011-02-24 10:48:51

FireFTP

2009-11-26 16:30:52

Suse中文乱码问题

2009-06-25 16:36:31

JBPM流程图

2011-03-22 16:09:33

MySQL 5.0.1乱码

2011-03-07 14:06:22

FileZilla乱码

2011-03-22 13:20:38

LAMPFirefox中文乱码

2011-05-13 14:47:05

oracle10g乱码问题

2011-05-20 13:50:30

oracle10g乱码
点赞
收藏

51CTO技术栈公众号