在將在 Tomcat 7 下正常作業的專案遷移到 Tomcat 9 時,在請求中傳遞帶有重音的單詞時,我收到錯誤 Invalid character found in the request target。
修改server.xml檔案,在connector中引入URIEncoding="UTF-8",也引入了子句relaxedQueryChars= ááééííóóúú,但還是報同樣的錯誤,無法接觸專案的實際代碼。
日志跟蹤顯示:java.lang.IllegalArgumentException: Invalid character found in the request target [/sahab/lupaDem.do?filtro=LupaDem¶m1=1¶m2=29527¶m3=OBSERVACI0xd3N ANTIRR0xc1BICA
uj5u.com熱心網友回復:
HTTP 不允許為請求的路徑指定編碼。因此,過去服務器使用的作業系統設定實際上令人困惑,尤其是對于全球范圍內使用的應用程式。
因此,建立了始終將請求編碼為 UTF-8 的標準,即使這樣,URLEncoding 也可以通過 %-轉義任何特殊字符來防止 UTF-8 問題。
簡而言之,確保您的請求已正確編碼。以前版本的 Tomcat 可能對此沒有錯誤。請求來自客戶端,而不是服務器本身。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425498.html
