url中文参数乱码问题
Posted hackxiyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了url中文参数乱码问题相关的知识,希望对你有一定的参考价值。
1、问题:
web项目里url的中文参数乱码
2、解决:
(1)前台:encodeURI(encodeURI(code)) (2)后台:URLDecoder.decode(new String(code.getBytes("iso-8859-1"),"utf-8"), "utf-8")
3、疑问:
(1)为什么前台需要编码两次?
因为request.getParameter(String)会进行一次URI的解码过程,调用内置的解码过程会导致乱码
而编码两次可以保证内置的解码过程执行后的结果是编码一次的结果(如果直接是中文会导致无法显示而乱码)
(2)后台为什么要首先以[iso-8859-1]读一次编码?
tomcat7的默认编码是[iso-8859-1],tomcat8的默认编码是[utf-8]
需要以[iso-8859-1]读取字节码,再以[utf-8]构造成子串,再使用[utf-8]解码一次,即可得到中文在程序里使用
4、扩展:
其它方法:(没有试验)
(1)根据tomcat的版本不同可以设置tomcat安装目录下的[conf/server.cml]文件的connector配置
(2)在程序重写获取参数的方法
5、参考文章
encodeURI(encodeURI(code))
url出现中文乱码
以上是关于url中文参数乱码问题的主要内容,如果未能解决你的问题,请参考以下文章