1.首先先统一所有界面的编码方式,倘若关联数据库,最好数据库编码方式也统一,这样可以减少不必要的麻烦。
2.比较使用request.getparameter(“”)方式和使用request.getquerystring()方式获得的字符串,若是getquerystring方法获得的字符串为很多%组成,这好办:
使用string的spilt()方法截取=后面部分然后调用java.net.URLDecoder.decode()方法解码即可。
至于getparameter()方法
最简单的方法是:
String s = new String(request.getParameter("name").getBytes("iso-8859-1"),"GBK");
但当初我试了N多方法都不可以:
后来无意中发现有人说tomcat编码方式也会导致乱码,于是,我修改了conf/server.xml里的这部分
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="GBK">
然后在获取值时只添加一句request.setcharacterencoding("gbk")居然可以了!!!
其实使用getquerystring没有这么多乱码问题,只是需要拆分字符串挺麻烦的