假设我有一个带有“é”的字符串,并且我想通过一个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) –