Get乱码的原因是Tomcat对get和post两种提交方式的处理方法不一样造成的,在进行post请求时,Tomcat会仍然使用request.setCharacterEncoding方法设置的编码来处理,如果没有设置,则会默认ISO8859-1编码,但是get请求则不相同,Tomcat对于get请求不会使用request.setCharacterEncoding方法设置的编码,而只会使用ISO8859-1的编码,解决方式如下:在Servlet类中doGet前写下如下代码:
private String charset = "UTF-8";
public String convert(String city){
System.out.println(city);
try {
return new String(city.getBytes("ISO8859-1"), charset);
} catch (UnsupportedEncodingException e) {
return city;
}
}