我們都知道,get請求和post請求的一個比較顯著區別就是,在使用post請求的時候,中文不會亂碼,但是在使用get請求的時候,如果url后面帶有中文就會亂碼了。那么這個怎么解決呢?

前提:配置項目的encoding編碼位utf-8的前提下。如,使用spring項目的時候,可以在spring的配置文件中添加如下的:
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mApping>
<filter-name>encoding</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
兩個方案:
一:使用Tomcat,將項目直接部署到tomcat中的
這種情況下,如果想要修改get請求中文參數不亂碼的話,需要修改:
在tomcat的配置文件中添加如下配置:
<!-- 添加屬性URIEncoding="utf-8"可以解決get亂碼問題,然后重啟服務器-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" />
二:如果使用的是maven 插件運行tomcat的話,就需要在pom.xml的maven插件中配置編碼方式:
<plugins>
<!-- maven項目的熱部署使用的插件 使用tomcat7的插件的話,運行時設置部署命令是需要使用tomcat7:deploy -->
<plugin>
<groupId>org.Apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<uriEncoding>UTF-8</uriEncoding> <!--配置編碼方式為UTF-8-->
<url>http://localhost:8080/manager/text</url>
<path>/</path>
<server>tomcat</server>
<username>tomcat</username>
<password>123456</password>
</configuration>
</plugin>