估计你用的是tomcat吧
Tomcat5以后的request.setCharacterEncoding() 方法对 GET 方法提交的数据无效,对 POST 提交的数据处理正确,不知道算不算Tomcat5的BUG,tomcat4好像正常的。
建议采用 new String(str.getBytes("ISO-8859-1"), "GB2312") 这样的用法.
Tomcat5以后的request.setCharacterEncoding() 方法对 GET 方法提交的数据无效,对 POST 提交的数据处理正确,不知道算不算Tomcat5的BUG,tomcat4好像正常的。
建议采用 new String(str.getBytes("ISO-8859-1"), "GB2312") 这样的用法.
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
或者
把处理请求的程序放到doPost方法中,然后在doGet方法调用doPost方法
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost();
}
这样还是会出现乱码的
我的doPost()这样写的不知是否有问题:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String name=request.getParameter("name");
PrintWriter out=response.getWriter();
out.println(name+"哈哈");
}
静态输出的"哈哈"都有乱码了!
我用的是TOMCAT5。
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
这样是可以,可比较麻烦。zjf405(crazy stone)说的正确,修改server.xml设置。呵呵,终于不用为中文问题烦恼了。
结帖了。多谢两位