struts2中文乱码问题

来源:互联网 发布:红米2网络解锁功能 编辑:程序博客网 时间:2024/05/20 19:02

今天一直在查form表单传给action的乱码问题,

直接给解决方法:

get方式:

不推荐,也咩有好的方法,查了老半天,没查出来,,用filter都不行,

用老方法解决:

Action中重新转码:利用.new String(name.getBytes("iso-8859-1"),"utf-8");

  例:this.name= new String(name.getBytes("iso-8859-1"),"utf-8");

  注:这里的name是从页面传过来的参数,只要在这里重新转码就可以了,另外,这里的utf-8依然是页面的编码格式。

  但每次都这样转,太麻烦了,因此可以写一个工具类,将乱码转成utf-8

public class Tools{
//提供一个方法,将乱码转化成utf-8

public static String getNewString(String input){
String result = "";
try{
result = new String(input.getBytes("iso-8859-1"),"utf-8");
}catch(Exception e){
e.printStackTrace();
}
return result;
}

在用的时候直接调用就行了:userName = Tools.getNewString(name);




post方法:

不存在乱码;

当然也可以filter,

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.
filter.CharacterEncodingFilter

  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
   <param-name>forceEncoding</param-name>
   <param-value>true</param-value>
  </init-param>
 </filter>


CharacterEncodingFilter的使用,但这个东西不是万能的,但有时候没有它就会很麻烦,所以还是加上,以防万一,但需要说明一点:这个filter只对post请求有效, get请求一律忽略,,


0 0
原创粉丝点击