JSP页面乱码问题

Posted 爱美的girl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP页面乱码问题相关的知识,希望对你有一定的参考价值。

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

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

<html>   

<head>   

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">   

</head>

<body>

<form name="form1" method="post" action="process.jsp">   

<div align="center">   

<input type="text" name="name">   

<input type="submit" name="Submit" value="Submit">   

</div>

</form>

</body>

</html>

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

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

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">   

</head>

<body>

<%=request.getParameter("name")%>   

</body>

</html>

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

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

<%   

request.seCharacterEncoding("gb2312");   

%>   

<html>

<head>

<title>JSP的中文处理</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">   

</head>

<body>

<%=request.getParameter("name")%>   

</body>

</html>

2、数据库连接出现乱码

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

3、数据库的显示乱码

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

public String iso2gb(String qs)   

{   

try{   

if (qs == null) return "NULL";   

else   

{   

return new String(qs.getBytes("iso-8859-1"),"gb2312");   

}   

}   

catch(Exception e){   

System.err.println("iso2gb error:"+e.getMessage());   

}   

return "NULL";   

}   

public String gb2iso(String qs)   

{   

try   

{   

if (qs == null) return "NULL";   

else {   

return new String(qs.getBytes("gb2312"),"iso-8859-1"); }   

}   

catch(Exception e){ System.err.println("gb2iso error:"+e.getMessage());}   

return "NULL";   

此文仅供参考。

以上是关于JSP页面乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

JSP中文乱码问题终极解决方案(下)

JSP页面中中文乱码问题

jsp页面乱码问题

Jsp页面中的中文乱码问题解决

jsp页面表单提交,controller接收乱码,数据库乱码等解决方法

JSP页面Form表单文本框内容传到servlet乱码问题