在JSP页面提交表单,以post方式提交,写了过滤器处理中文乱码问题

但是提交的两个值一个乱码,另外一个值却没有乱码,下面是截图

再次提交后,乱码会越来越长

请大神解答,越详细越好,没什么分,就悬赏30分吧
用超链接传值是没问题的,还有就是过滤器绝对没问题,因为其他页面都没发生过这样的问题,JSP取值用的是${}

第1个回答  2013-10-04

可能造成的原因:

    页面 后台业务 数据 中间有一个环节编码不一致。

    是否对该字段做了编码转换。


针对1:

检查页面编码 是什么编码。如:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>

过滤器设置的是什么编码。数据库采用什么编码。然后最好统一编码。


针对2:

看看是否做了强制转换,或者设置了request response的编码。

追问

这是过滤器代码:

    


数据库采用的是UTF-8编码

因为用的是FORM表单方式取值,没写强制转换

追答

jsp 页面采用什么编码的?

第2个回答  2013-10-04
尝试一下GBK编码方式 ,然后单独写一个类。
public class Chinese {
public static String toChinese(String strvalue) {
try {
if (strvalue == null) {
return "";
} else {
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
} catch (Exception e) {
return "";
}
}
}
我这有一个类 你拿回去改一下看看能不能用!
相似回答