1. 程式人生 > >修改Tomcat預設編碼解決中文傳值亂碼問題

修改Tomcat預設編碼解決中文傳值亂碼問題

在搜尋專案中使用tomcat + SSH框架,出現前後臺傳中文引數亂碼的問題。這是因為出現了編碼不統一的問題。後臺預設使用UTF-8,而前臺傳值預設是ISO-8859-1。因此最直接的解決之道就是統一前後臺編碼。修改tomcat server.xml中的預設編碼,問題得到解決。

找到tomcat / conf / server.xml中如下標籤,加入URIEncoding="UTF-8"。重啟tomcat即可生效。

<!-- A HTTP/1.1 Connector on port 8080 -->
      <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />


另外,中文傳值時可以使用JS 的encodeURI或encodeURIComponent將中文字元編碼,再在後臺進行解碼。解碼使用java.net.URLDecoder類的decode(String s, String enc)方法,第一個引數是要解碼的字串,第二個引數指定解碼時用的編碼。由該java方法可以看出,首先還是要保證編碼格式的正確性,然後再對正確解析出的編碼字串進行decode。