servlet中文乱码
乱码来自哪里
一、表单
1、get
解决办法:request.setCharacterEncoding("UTF-8");
2、post
解决办法:写一个工具类
public class EncodingUtil {
public static String strTran(String str) {
String utfStr = null;
if(str==null)
return null;
try {
utfStr = new String(str.getBytes("ISO-8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return utfStr;
}
}
二、超链接
解决办法:同get方法相同
三、sendDirect
解决办法:同get方法相同
特别说明:如果你的浏览器是Ie6或是以下版本,则我们的第二和三种情况会出现乱码(当中文是奇数时)
解决办法:String info = java.net.URLEncoder.encode("你好吗.jpg","utf-8");
<a href="www.test.com?name="info></a>
说明:我们应当尽量用Post方式提交
在服务器端是中文,在reSponse的时候,也要考虑浏览器显示是否正确,一般我们通过response.setContentType("text/html;charset=utf-8");