在實(shí)際開(kāi)發(fā)中我們經(jīng)常遇到request請(qǐng)求的中文亂碼,那么如何解決中文亂碼問(wèn)題?
方法一:對(duì)請(qǐng)求參數(shù)進(jìn)行編碼轉(zhuǎn)換
String userName=request.getParamter("userName");
userName=new String(userName.getByte("iso-8859-1"),"utf-8");
方法二:對(duì)請(qǐng)求頭進(jìn)行編碼轉(zhuǎn)換
request.setCharacterEncoding("UTF-8");
備注:該方法只對(duì)POST方式提交的數(shù)據(jù)有效,對(duì)GET方式提交的數(shù)據(jù)無(wú)效!
方法三:對(duì)tomcat服務(wù)器server.xml文件設(shè)置編碼
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
只對(duì)get請(qǐng)求有效但是對(duì)于post請(qǐng)求沒(méi)有用
SpringMVC控制器時(shí)可使用
<!-- Spring字符集過(guò)濾器 --> <filter> <filter-name>SpringEncodingFilter</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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>SpringEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>