在实际开发中碰到一个非常头痛的问题,在js文件中向jsp页面传中文字符时碰见了一个字符乱码(get传递方式)。在传值时使用encodeURI进行了编码,然后再接收端(jsp)使用了URLDecoder.decode('','字符编码'),进行解码但还是有字符乱码问题。
解决办法,对传递中文字符的参数进行两次的的编码encodeURI(encodeURI("")),就OK!.
进行两次encodeURI的原因
因为Tomcat服务器会自动帮你做一次URLDecode,所以再加上你自己在代码里面写的URLDecode,一共就是两个Decode了,既然要两次Decode,当然就需要两次Encode了。或许你会问,干脆只Encode一次,然后在java代码里不Decode,呵呵,这个也是不行的,这其实也就是为什么要进行Encode的原因吧