servlet中文乱码问题原因以解决办法



servlet中文乱码问题原因以解决办法。一、产生中文乱码的三种情况
1.form表单
get,post
2.超链接
<a href=”http://localhost:8080/login?name=如”>链接</a>
3.sendRederict页面重导向
response.sendRedirect(“/UsersManager/mainframe?name=如&password=123456″);
二、解决
1、
post:当表单传递中文字符时;产生乱码。是因为tomcat是以iso编码产地字符,所以用utf-8传递时就会出现乱码。只要在接收数据信息的Servlet页面中设置request的编码即可:
request.setCharacterEncoding(“utf-8″);
2.get
在获取数据的servelet页面设置数据的编码。
String username=new String(request.getParameter(“username”).getBytes(“iso-8859-1″),”utf-8″);

还可以这个字符转换方式写成方法

package com.ru.staticclass;
import java.io.UnsupportedEncodingException;
public class EncodingForGet {
public static String geting(String str){
String GetingNewStr = null;
try {
GetingNewStr=new String(str.getBytes(“iso-8859-1″),”utf-8″);
return GetingNewStr;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return GetingNewStr;
}
}
这样只要在需要的地方调用这个方法就可以了

String username1=request.getParameter(“username”);
String username11=EncodingForGet.geting(username1);
2.超链接的与get请求方式相同,处理方法也一样
3.
中文乱码问题
http://blog.sina.com.cn/s/blog_976e495701012k6f.html