Ajax中文乱码的解决

时间:2023-12-30 23:42:56

网上有很多解决Ajax中文乱码的例子,昨晚弄了很久,最终确定一种“确实”有效地方法。
首先我有必要说明一下我遇到的情况:
有一个注册页面,注册用户填完信息并提交后,页面获得信息并通过java servlet存放到mssqlserver中。但若填写的信息中含有中文,则报错。这就是我遇到的情况。

网上似乎有很多种解决方法,不过我现在只确定了一种:

你要要将含有中文的数据进行两次encodeURI编码,在服务器端用java.net.URLDecodeer.decode(String s,"UTF-8");如:
客户端:
url="test.jsp?name="+encodeURI(encodeURI(name));
服务端:
String name = request.getParameter("name");
name = java.net.URLDecoder.decode(name,"UTF-8");

这样就能在服务端获得正确的中文字符串。
值得说明的是,如果把"UTF-8"改为"GBK"则转换失败,具体原因还没有探明白