1、经常在web开发中遇到参数传递的中文乱码问题,常用的做法:
a)、修改HTML/JSP页面编码格式: <meta charset="UTF-8">或<%@ page contentType="text/html; charset=UTF-8"%>
b)、使用filter过滤,设置编码.
2、但有时候上诉方法,不太好用,经常无效,这是我们可以将传递的中文
字符串参数在js中统一编码(unicode)然后在后台统一解码为字符串
a)、js端 编码函数
/*
* js Unicode编码转换
*/
var decToHex = function(str) {
var res=[];
for(var i=0;i < str.length;i++)
res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);
return "\\u"+res.join("\\u");
};
b)控制器端 解码函数
/**
* unicode 转字符串
* @param utfString
* @return
*/
public static String unicodeToString(String utfString){
StringBuilder sb = new StringBuilder();
int i = -1;
int pos = 0;
while((i=utfString.indexOf("\\u", pos)) != -1){
sb.append(utfString.substring(pos, i));
if(i+5 < utfString.length()){
pos = i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2, i+6), 16));
}
}
return sb.toString();
}