以前使用GBK作为项目编码时候,已经自我感觉把所有的编码问题都搞定了,但没有想到换了一个项目中使用UTF-8作为编码时候,却出现了不能正确读取URL中的中文参数问题。而且问题比较搞笑,比如" &key=非洲",则在服务器端重可以正确读取,但是换了" &key=非洲语",则在服务器端读到的参数为非洲??。
就以上情况分析,应该是在传输过程中丢失了某个字符,因为我们知道在传输中是以2进制形式传输。
于是可以在JSP页面上,在提交URL之前,使用javascript的encodeURIComponent()来将参数编码成为UNICODE,之后在服务器端使用URLDecoder.decode进行解码。
果然,解决问题。不过这种方式实在太不优雅。