鄙人在开发项目过程中常常会用到ajax的异步传输技术来实现数据库某表字段的唯一性,不过通常都是判断数字或字母的,这个问题都不大。
不过最近在开发项目中,遇见需要通过ajax传中文参数到后台判断其唯一性,打断点发现中文参数传进后台代码都成乱码了,在网上找了资料,有些讲的好复杂,通过鄙人亲自试验,发现只需要在客户端将中文参数通过encodeURI(encodeURI(name))编译后,然后在后台再通过URLDecoder.decode(name,"utf-8")进行转码,即可!
var url = "soft!checkSoft.action?name="+encodeURI(encodeURI(name));
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = mycallback;
xmlHttp.send(null);
String name = ServletActionContext.getRequest().getParameter("name");
String name_eco = URLDecoder.decode(name,"utf-8"));