修改 bin/catalina.sh:
1 2 | JAVA_OPTS= "-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Duser.timezone=GMT+08 ${JAVA_OPTS}" (-Dsun.jnu.encoding=UTF-8可有可無) |
或修改 conf/web.xml (有修改catalina.sh就不用改web.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!--A filter that sets character encoding that is used to decode--> <!--parameters in a POST request--> <filter> <filter-name>setCharacterEncodingFilter< /filter-name > <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter< /filter-class > <init-param> <param-name>encoding< /param-name > <param-value>UTF-8< /param-value > < /init-param > < /filter > <!--The mapping for the Set Character Encoding Filter--> <filter-mapping> <filter-name>setCharacterEncodingFilter< /filter-name > <url-pattern>/*< /url-pattern > < /filter-mapping > |
修改 conf/server.xml:
1 2 3 4 5 | <Connector port= "80" protocol= "HTTP/1.1" ... URIEncoding= "utf-8" useBodyEncodingForURI= "true" ... > |
URIEncoding:對於URI,決定要以何種編碼來處理。
useBodyEncodingForURI:對於URI,決定是否要以request HEADER中的Content-Type中的編碼類型訊息、或request.setCharacterEncoding()方法中指定的編碼來處理,若為false則一律以URIEncoding所指定的編碼來處理。
而編寫網頁時,最好能自行將下載鏈結等先做URL Encode,而不是讓瀏覽器去幫你做,因為不是每個瀏覽器都會自動以URL Encode(UTF-8)來傳送的。 如果是有在寫jsp,那麼在web.xml加上:
1 2 3 4 5 6 | <jsp-config> <jsp-property-group> <url-pattern>*.jsp< /url-pattern > <pageencoding>UTF-8< /pageencoding > < /jsp-property-group > < /jsp-config > |
沒有留言:
張貼留言