您的位置:首页 > 其它

地址栏中提交中文参数乱码问题

2013-08-26 09:13 357 查看
例如浏览器地址栏中输入"http://localhost:8080/helloapp.do?username=编辑"提交,对于这种方式,浏览器不会采用页面的charset方式对URL中的中文进行编码后提交至服务器(IE,FireFox都一样),而是采用系统的GBK转码为ISO-8859-1之后提交至Servlet容器,因为进入容器时中文进行了GBK至ISO-8859-1的转码,而之前我们的Servlet容器URIEncoding设置为UTF-8,当我们使用request.getParameter("username")时,相当于又进行了这样的流程GBK-->ISO-8859-1-->UTF-8,按照以上我们使用的测试中文,“编辑”,使用request.getParameter("username")则会得到这样的结果�༭。

所以为了解决乱码问题,通常我们先对要传递的参数进行编码,然后再服务端接收到参数后进行解码,例如:

  在Javascript中,可以对要传递的参数用encodeURI方法进行编码后再传递参数,在服务端接收到参数后用decodeURI方法进行解码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: