假設我有一個帶有「é」的字符串,並且我想通過一個URL將它發送給下一個控制器,字符被編碼爲%C3%A9,並且當它接收到另一個控制器,它被解碼爲「Ã」。 我的問題是,如何通過URL對「é」進行編碼,以便在其他控制器中接收到它時,它會被解碼爲「é」?目前,我正在手動替換它們。我需要一種方法來自動執行任何特殊字符(èà...) 謝謝。通過URL發送特殊字符Java
0
A
回答
0
不幸的是,沒有辦法聲明URL數據的編碼。常用的編碼是ISO-8859-1或Latin1,但現在,UTF-8經常用於新的開發。原因在於servlet規範說明,當沒有指定charset時,隱含ISO-8859-1,但HTML 4.0建議使用UTF-8作爲URL。
問題是URL由字節組成,並且在將servlet容器傳遞給應用程序之前,servlet容器將其轉換爲java字符,因此您必須在servlet容器級別聲明使用的字符集。出於兼容原因,默認情況下,版本8.0之前的着名Tomcat假設URL爲Latin1字符集。從8.0.0開始,現在默認取決於「嚴格的servlet合規性」設置。它是ISO-8859-1,當真正和UTF-8時假
參考文獻:
- What character set should I assume the encoded characters in a URL to be in?
- Tomcat FAQ/CharacterEncoding
爲了您確切的問題,你有兩種方式正確處理é
字符:
- 離開你的servlet容器的配置不變,並在編碼ISO-8859-1的URL(
é
會%E9
) - 堅持UTF-8的URL,但宣佈的servlet容器
相關問題
- 1. 通過Http發送帶有特殊字符的URL(android)
- 2. sendKeys - 發送特殊字符
- 3. 通過特殊字符
- 4. 我可以通過$ _POST發送特殊字符嗎?
- 5. Loopj通過請求發送特殊字符
- 6. 如何通過郵件從shell腳本發送特殊字符?
- 7. 通過AJAX發送特殊字符(「&lt」,「&」,「&」)
- 8. 通過USB轉換器發送特殊ASCII字符rs232
- 9. 無法通過jQuery發送特殊字符ajax
- 10. 通過字符串包含特殊字符在Java
- 11. Python vncdotool發送特殊字符
- 12. 錯誤發送特殊字符在jquery.Ajax
- 13. Objective-C發送特殊字符POST
- 14. TSQL用特殊字符發送XML
- 15. 發送在XMPP特殊字符
- 16. 百分比在發送URL之前特殊字符的編碼
- 17. 如何在ASP.NET MVC中通過url傳遞特殊字符?
- 18. 通過apache HTTPClient傳遞特殊字符
- 19. 通過特殊字符爆炸·
- 20. 如何通過特殊字符在MySQL
- 21. 如何通過Springmvc中的ajax發送參數,其中包含特殊字符
- 22. 使用.net通過web服務發送特殊字符使用.net
- 23. jQuery/javascript:如何接受特殊字符並使用json通過ajax發送?
- 24. Java替換特殊字符
- 25. Socket.io發出特殊字符
- 26. Tomcat發佈特殊字符
- 27. Http發佈參數到url不會發送特殊字符「+」在objectC Xcode
- 28. Python3 re.split()通過不是特殊子字符串的字符
- 29. 通過特殊字符的字符串值的函數的Javascript
- 30. 通過PropertyGrid向字符串屬性添加特殊字符
[' URLEncoder'](https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html)和['URLDecoder'](https://docs.oracle.com/javase/7 /docs/api/java/net/URLDecoder.html)? – KarelG
[Java中的HTTP URL地址編碼]的可能重複(https://stackoverflow.com/questions/724043/http-url-address-encoding-in-java) –