CharacterEncodingFilter只对POST请求有用,GET请求的需要对你运行的tomcat 目录conf/server.xml文件中
改为:
这是tomcat的原因造成的,tomcat默认的编码是iso-8859-1。不是大家常用的utf-8。
换句话说,get请求是对资源的访问,资源我一般不会涉及中文路径(最好不要)
post 针对于数据的提交,所以你如果是表单,最好用post请求。
或者,重新搞一下;
String user=null;
try {
user=new String(userName.getBytes(“iso-8859-1”),“utf-8”);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在web,xml里配置了也不管用;
后台很多时候要用到ajax验证,而且验证后可能要传一个内容到前台,虽然可以用out.print(),但不方便,也可以使用编码解码,但如果太多也不方便,今天在网上看到了一种方法,因为是跳转,肯定关系struts层,我用的是springMVC的注解,所以就是在开启注解的地方检测下如果返回的是string,就把它的text文本格式变成html格式,在设计html格式为utf-8,就可以。
找到配置文件servlet-XXX.xml,里面有个开启注解的地方<mvc:annotation-driven />把它修改为
mvc:annotation-driven
<mvc:message-converters register-defaults=“true”>
text/plain;charset=UTF-8
text/html;charset=UTF-8
</mvc:message-converters>
</mvc:annotation-driven>
这样就可以了。