日期:2014-05-18  浏览次数:20666 次

Jsp 字符编码问题,页面输出乱码,大家指点,万分感激!
我在一个Html网页的文本框中输入英文字母,可以正常显示,为什么输入简体中文或者繁体中文,jsp页面显示为乱码?大家指点!怎样才能在Jsp中显示Html网页中输入的简体中文或繁体中文呢?

代码如下:

b.html

<HTML> <HEAD>
</HEAD>
<BODY>
<form   name= "myform "   action= "a.jsp ">
<br>
<textarea   cols= "100 "   rows= "10 "   name= "termarea ">
</textarea>
<br   />
<input     type= "submit "   onclick= " "/>
</form>
</BODY>
</HTML>

a.jsp

<%@   page   contentType= "text/html;   charset=GBK "   %>
<html   >
<head>
</head>
<%
String   termlist=request.getParameter( "termarea ")   ;
%>
<body>
<%
out.println(termlist+ " <br> ")   ;
%>
</body>
</html>




------解决方案--------------------
添加语句
request.setContentSet( "gbk ");
------解决方案--------------------
request.setCharacterEncoding( "GBK ");
String termlist=request.getParameter( "termarea ") ;

这是没问题的,有问题的是你的Tomcat
------解决方案--------------------
a.jsp, b.jsp都加上
<%@page contentType= "text/html;charset=GBK " pageEncoding= "GBK "%>
<%request.setCharacterEncoding( "GBK ");%>
------解决方案--------------------
Tomcat 是否设置了URIEncoding ?
------解决方案--------------------
pageEncoding= "GBK "
------解决方案--------------------
在tomcat的server.xml中,加入URIEncoding= "GBK "
只能解决用get提交,
用post的话,就要用 <% request.setCharacterEncoding( "GBK "); %>


new String(request.getParameter( "username ").getBytes( "ISO_8859_1 "), "GBK ");就都可以解决了,因为tomcat内部是ISO_8859_1,不过上面的两中方式就不要加了

三种方式是独立的


你看看你的是哪种情况