struts2 action 接收中文是乱码
renren4
2009-03-09
前台jsp表单提交中文参数过去,在action中调试时总是接收到乱码
表单使用的是post提交方式 jsp页面设置 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> struts.xml 也设置了 <constant name="struts.i18n.encoding" value="UTF-8" /> 自己还写了一个拦截器 public class CharEncodinInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); request.setCharacterEncoding("UTF-8"); return invocation.invoke(); } } 并且已经成功引用该拦截器 此外tomcat 页设置了 URIEncoding="UTF-8" 但是action 中接收中文时还是乱码 |
|
harbey
2009-03-22
如果这样的话还是乱码就是在有点奇怪!
|
|
happyblue
2009-03-22
在传的参数encode一下传过去看看
|
|
my5622576
2009-03-29
web服务器用的是什么 要是tomcat的话 在server.xml中设置useBodyEncodingForURI="true" URIEncoding="utf-8"
应该就没问题了 |
|
zhuimin
2009-03-30
跟踪调试一下看究竟是哪一步出现问题了 ,在想解决的办法。
|
|
renren4
2009-03-31
问题已经解决了 谢谢各位 最后是写了个最原始的过滤器解决的
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); chain.doFilter( request, response ); } |
|
yuanke
2009-04-01
在struts.xml 配置文件中加入
<constant name="struts.i18n.encoding" value="gbk"/>就可以了 |
|
njyu
2009-05-05
my5622576 写道 web服务器用的是什么 要是tomcat的话 在server.xml中设置useBodyEncodingForURI="true" URIEncoding="utf-8"
应该就没问题了 之前我也遇到过这个问题,后来仔细研究发现,在给Tomcat设定了字符集以后,就能正常接收中文! |