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,不过上面的两中方式就不要加了
三种方式是独立的
你看看你的是哪种情况