最近在做一个类似于百度的提示功能,可是遇到了dwr给后台传值是却拿到的是乱码,这可让人很棘手,于是在网上找了很多的方法,但是只有一个可以能用,拿出来筛选出来和大家一起分享:
var str = dwr.util.getValue('word');
str = encodeURI(str);//用encodeURI对字符串进行统一编码; 必须是经过两次转码,我试过了一次错误的
str = encodeURI(str);
re.searchText(str, callback);
后台解码是:
public String searchText(String str) {
try {
str = URLDecoder.decode(str, "UTF-8");
str = URLDecoder.decode(str, "UTF-8");
System.out.println("str---->:"+str);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
因为我是在service中作的所以解码页必须是两次
{在action中request.getParameter("str")好像自身就一个一次解码,所以只有一次
str = URLDecoder.decode(str, "UTF-8");这个听网友这么说的,具体没有去试,感兴趣的朋友可以自己试一试。}