问题解决:jsp页面的中文乱码
1.源码中写的是中文,在显示时是乱码,在代码中设置浏览器的输出显示方式。
<%@ page XXXXXXXX contentType = "text/html;charset=gb2312"%>
2.表单中提交的数据,用request.getParameter("")的方法获取,但是当表单中出现中文数据的时候会出现乱码
eg.
FormCharset.jsp
<form action="AcceptFormCharset.jsp" method="post"> 用户名:<input type="text" name="userName" size="10"/> 密 码:<input type="password" name="password" size="10"/> <input type="submit" value="提交"> </form>
AcceptFormCharset.jsp
<body>
  <font size="4">
  下面是提交表单以后用request取到的表单数据:<br>
  <%
  out.println("表单输入的userName的值是:"+request.getParameter("userName")+"<br>");
  out.println("表单输入的password的值是:"+request.getParameter("password")+"<br>");
  %>
  </font>
</body>
这里出现乱码是因为:tomcat对于post方法提交的表单采用的默认编码是ISO-8859-1.
解决办法:转换编码格式:
new String(userName.getBytes("ISO-8859-1"),"gb2312")  
从ISO-8859-1格式的字符串中取出字节内容,在用gb2312的编码格式重新构造一个新的字符串
<%
  out.println("表单输入的userName的值是:"+new String(userName.getBytes("ISO-8859-1"),"gb2312") +"<br>");
  out.println("表单输入的password的值是:"+new String(password.getBytes("ISO-8859-1"),"gb2312") +"<br>");
  %>
3.URL中的中文字符传递乱码
<%
  String param = request.getParameter("param");
  %>
  <body><font size="4">
  <a href="URLCharset.jsp?param='中文'">请单击这个链接</a><br>
  你提交的参数为:<%=param %>
  </font>
  </body>
这里的参数传递会出现乱码,用1/2的方法是不行的,需要在tomcat服务器的配置文件进行修改,修改tomcat的conf目录下的server.xml配置文件。修改方法是在port="8080"后面添加URI编码设置URIEncoding="gb2312"
另:在jsp文件中出现中文字符,需要设置page参数:
<%@ page language="java" import = "java.util.*" pageEncoding="gb2312"%>
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号