在客户端,用ajax请求服务器端资源,需要传参,就写了?name=我们,这类的url,结果发现服务器端,中文解析出来时乱码。
jsp页面使用utf-8编码的,配置的tomcat过滤器也做了utf-8编码的转换,还是有问题。
google后得知:ajax传递数据时,如果为中文,ajax默认用gb2312编码。
解决方案:客户端 对url进行两次 encodeURI,
url = "${path}test/ajax_suggest.action?name=我们"; url = encodeURI(encodeURI(url));
服务器端:解析参数
URLDecoder.decode(name, "utf-8")
。
注意:全站采用utf-8编码