日期:2014-05-19  浏览次数:20716 次

顽固的struts2 乱码问题
我使用的是struts2.0 但是提交表单的时候,在Action里得到是中文乱码, 
后来添加了中文乱码过滤器,过滤器跑了但是不管用 
我在web.xml 里配置了一个Filter(UTF-8) 放在最上面 但是不管用 
后来在struts.xml 配置了<constant name="struts.i18n.encoding" value="UTF-8" /> 也不行 
再后来用最原始的方法 new String(infoSingle.getInfoTitle().getBytes("ISO8859-1")); 也是乱码 
tomcat 中的server.xml中也添加了URIEncoding="UTF-8" 不管用。
浏览器也设置为UTF-8了,
虽然打印(system.out.print())出来为乱码,可是到数据库里确是正常的,虽然能用,但是看着不爽啊,
我实在是没法了 请问有哪位朋友 能解决这个问题,小弟感激不尽!!

------解决方案--------------------
你是表单的内容是 中文 到ACTION会是乱码?
------解决方案--------------------
确定是表单中的数据乱码 而不是加在请求路径后的参数乱码?
------解决方案--------------------
写个过滤器吧
------解决方案--------------------
把过滤器映射放到所有过滤器映射的前面就可以了
------解决方案--------------------
好像要先编码的~在解码~我以前是这样弄的!
------解决方案--------------------
String newStr = new String(oldStr.getBytes("oneCharSet"), "otherCharSet");
多试几个编码试试!
------解决方案--------------------
楼上的方法都不行
把中文部分用js的一个方法转码(你百度一下) 在后台进行解码 前两天我就是这么解决的
后台可能要连续两次解码

------解决方案--------------------
我使用的是struts2.0 但是提交表单的时候,在Action里得到是中文乱码, 


form 里面加上

method="post"
就可以了 试试~