`
tiantian911
  • 浏览: 217803 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP中乱码的解决

阅读更多
<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<form action="SayHelloServlet">
 <input name="userPwd" id="userPwd" size="14" tabindex="2">
 <input type=submit >

</form>
</body>
</html>



import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class for Servlet: SayHelloServlet
 * 
 */
public class SayHelloServlet extends javax.servlet.http.HttpServlet implements
		javax.servlet.Servlet {
	static final long serialVersionUID = 1L;

	/*
	 * (non-Java-doc)
	 * 
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public SayHelloServlet() {
		super();
	}

	/*
	 * (non-Java-doc)
	 * 
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
	 *      HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String str = (String) request.getParameter("userPwd");
		String str_new= new String(str.getBytes("ISO-8859-1"),"GB2312");
		System.out.println("转换前: "+str);
		System.out.println("转换后: "+str_new);
	}

	/*
	 * (non-Java-doc)
	 * 
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
	 *      HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}
}


在tomcat的内部,都是以iso8859-1来编码的,这样在servlet里取出来再用utf8来解码,就会产生乱码,可以手动的用new string(getbytes)来解码,或者直接的在setEncoding里设置也可以。




权宜之计~
分享到:
评论
5 楼 清风车影 2008-04-07  
使用utf-8就没问题了啦。
4 楼 Fly_m 2008-04-07  
网上太多这个东西了,随便找找都可以的:)
知道其中的原理之后,可能才会更了解.
3 楼 tiantian911 2008-04-07  
ok~thx~以前不知道还能在server.xml里改
2 楼 gfh21cn 2008-04-07  
全盘使用UTF-8,应该没有这类问题的
1 楼 slaser 2008-04-07  
<p>tomcat在处理get方法参数时,采用ISO-8859-1字符集,不过,你可以改server.xml里面的设置。</p><p> </p><pre name='code' class='xml'>&lt;Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8"/&gt;</pre> 如果你用post提交,应该一切正常。<p> </p><p> </p>

相关推荐

Global site tag (gtag.js) - Google Analytics