一般来说,我们现在编程都使用的MVC三层架构体系,也就是说接收和处理数据都是在Moudel(Servler)中完成的,所以要解决乱码问题,也就要在这里进行
对于POST请求,一般可以用简单的 request.setCharacterEncoding("GBK"); 来实现
也可以用 response.setContentType("text/html;charset=GBK");
response.setCharacterEncoding("GBK"); 这两种方法。
但要解决GET方法的乱码处理 需要一个方法来解决,首先在一个类中定义一个静态方法如下:
//对乱码的处理方法
public static String font(String str)
{
try {
return new String(str.getBytes("ISO-8859-1"), "GB2312");
} catch (UnsupportedEncodingException ex) {
return null;
}
}
然后在Servler中接收字符时调用方法处理:
String name = request.getParameter("usname"); //处理前
String name = NewsDao.font(request.getParameter("usname")); //用定义的方法处理
NewsDao是我方法所在的类
注意:这也可以说是乱码的终极解决方案,如果接收的字符不是汉字就不要用! 负责可能适得其反
阅读(467) | 评论(1) | 转发(0) |