2008-04-07
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里设置也可以。
权宜之计~
评论
清风车影
2008-04-07
使用utf-8就没问题了啦。
Fly_m
2008-04-07
网上太多这个东西了,随便找找都可以的:)
知道其中的原理之后,可能才会更了解.
知道其中的原理之后,可能才会更了解.
tiantian911
2008-04-07
ok~thx~以前不知道还能在server.xml里改
gfh21cn
2008-04-07
全盘使用UTF-8,应该没有这类问题的
slaser
2008-04-07
tomcat在处理get方法参数时,采用ISO-8859-1字符集,不过,你可以改server.xml里面的设置。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/> 如果你用post提交,应该一切正常。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 19053 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
我的相册
1.jpg
共 23 张
共 23 张
最近加入圈子
最新评论
-
凌晨写博客
终于可以留言了,飘过来看看==||
-- by yj_grace -
NGOSS:下一代网络运营支 ...
精华尽在SID
-- by partech -
NGOSS:下一代网络运营支 ...
电信的东西比较多,这个只能算是介绍
-- by everlasting_188 -
给女孩的话:当他不再爱你 ...
爱和被爱,有得选的么? 如果可以选,我也希望能完全忘记并完全投入“爱你并正派的男 ...
-- by zbobo -
比較Java和C++的總體擁有 ...
delete 写道魔力猫咪 写道不过这种由厂商或者由厂商赞助的调查报告有多少真实 ...
-- by jimmy_c






评论排行榜