url中文参数乱码问题

一、问题:

  web项目里url的中文参数乱码html

 

二、解决:

(1)前台:encodeURI(encodeURI(code))
(2)后台:URLDecoder.decode(new String(code.getBytes("iso-8859-1"),"utf-8"), "utf-8")

 

三、疑问:

  (1)为何前台须要编码两次?java

    由于request.getParameter(String)会进行一次URI的解码过程,调用内置的解码过程会致使乱码web

    而编码两次能够保证内置的解码过程执行后的结果是编码一次的结果(若是直接是中文会致使没法显示而乱码)tomcat

  (2)后台为何要首先以[iso-8859-1]读一次编码?编码

    tomcat7的默认编码是[iso-8859-1],tomcat8的默认编码是[utf-8]url

    须要以[iso-8859-1]读取字节码,再以[utf-8]构形成子串,再使用[utf-8]解码一次,便可获得中文在程序里使用spa

 

四、扩展:

  其它方法:(没有试验)code

  (1)根据tomcat的版本不一样能够设置tomcat安装目录下的[conf/server.cml]文件的connector配置server

  (2)在程序重写获取参数的方法htm

 

五、参考文章

          js/java 页面url传值中文编码&解码问题

  encodeURI(encodeURI(code))

  url出现中文乱码
相关文章
相关标签/搜索