乱码的原因:
request.setCharsetEncoding(“utf-8”),这个语句只对Post形式的提交方式有效,而对Get方式提交无效。
解决方案:
1. 更改Tomcat服务器设置
① 在更改Tomcat设置,如果想在之后的项目当中不再重新设置,而是一次设置长期使用的话,建议在Tomcat服务器之上设置,具体路径如下:C:\apache-tomcat-6.0.32\conf\server.xml。打开这个配置文件之后,搜索8080得到这个配置
<Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
增加几条配置语句之后变为
<ConnectorURIEncoding="utf-8"connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"useBodyEncodingForURI="true"/>
这样在项目当中就不用显式的设置了,
直接使用request.setCharacterEncoding("utf-8");即可。
② 在使用这个编码之前,必须将项目所在文件夹下的tomcat本地服务的配置文件设置成相应的格式,即D:\Test\Servers\Tomcat v6.0 Server at localhost-config\server.xml文件设置为相同格式即可。
2. 不设置tomcat服务器,在程序当中设置。
在程序中设置代码如下:
String temp = request.getParamer(“username”);
String username = new String(temp.getBytes(“ISO8895-1”),”utf-8”);
就是说,默认的get方式提交使用的是ISO8895-1编码,只要把编码格式更改一下即可。