今天遇到一个中文乱码问题,使用post没有问题,但是使用get就会乱码。
经查,是tomcat与url编码不一致导致的。tomcat指定编码是UTF-8,而url编码是gbk,这样的话,我在程序中对从request.getParameter中获取到的参数不管怎样都是乱码的,因为数据在经过tomcat的时候已经被以utf-8的编码进行解码,等应用程序获取的参数已经是乱码的,这样不管怎么解码都是没用的。
这里使用request.getQueryString();来获取参数。getQueryString()将获取url中?后面的所有字符的原始值,我们用&符号和=号将每个参数的key和value分开,并根据指定的编码格式进行解码,这样就解决了这种情况下的乱码问题了。