但隨著 CR 與 Bug 的出現,這個小小地不便還挺討厭的,還是來搞清楚發生什麼事了吧!
使用者用的是 Tomcat 6 Windows 安裝版,我的是 Tomcat 8 解壓縮版。
第一步當然是看 server.xml 裡的 Connector,我的有加 URIEncoding="UTF-8",使用者的沒有加,不能改使用者的,搞爛使用者網站的風險我擔不起啊!
那就來看我的為什麼會變問號!
疑?我的參數到後台是正常的,直到我「刻意」重新編碼,從 ISO-8859-1 重編成 UTF-8,就變成問號了,兇手在這。
使用者沒有加 URIEncoding="UTF-8",因而是用預設的 ISO-8859-1,所以重新編碼後是正常的。
不想改重新編碼,會影響到使用者,也太費工了。
只好把我的 URIEncoding="UTF-8" 拿掉,也來用預設值就好了吧!
錯,還是一樣,一到後台是正常的,重新編碼後就爛了,Why?
經過一番 Google 熱線,終於搞清楚了。
Tomcat 8 改了 Connector URIEncoding 預設值!
Tomcat 8 改了 Connector URIEncoding 預設值!
Tomcat 8 改了 Connector URIEncoding 預設值!
參考官方文件如下。
Tomcat 6 的官方文件:
Tomcat 6 預設用 ISO-8859-1。
Tomcat 7 的官方文件:
Tomcat 8 的官方文件:
Tomcat 8 預設用 UTF-8,除非加上一個叫做 org.apache.catalina.STRICT_SERVLET_COMPLIANCE 的系統變數,才會使用 ISO-8859-1。
又或者加上 URIEncoding="ISO-8859-1" 也是可以的。
在我的 Connector 加上 URIEncoding="ISO-8859-1" 後就正常了(應該說跟使用者一樣了)。
沒有留言:
張貼留言