遇到的实际问题:
线上的程序一直正常运行的,有一天正常运行的程序突然有些功能模块出现乱码,后来经过排查发现出现乱码的模块是因为提交到地址访问栏时有中文,且这段时间线上对数据库与服务器进行了更换。
解决的方法:双重解码
当初对url的解码是这样的
url : aa/bb/cc!getList.action?org=” + encodeURI(“中文”)
一开始这样是可以正常运行的,当线上把数库与服务器更新之后才不行。现在的 解决方法是:(双层解码)
url : aa/bb/cc!getList.action?org=” + encodeURI(encodeURI(“中文”))
在程序中可以通过如下方法获取url中中文:
java.net.URLDecoder.decode(payComAlias, “UTF-8”);