因此,URLEncoder的编码和URLDecoder解码的javadoc中包含了这个注释:
Note: The World Wide Web Consortium Recommendation states that UTF-8 should be used. Not doing so may introduce incompatibilites."
但是,如果有人使用不同的编码类型发送请求,使用UTF-8进行编码不是一个坏主意吗?检查标题(如果存在)并使用其中指定的任何编码有什么问题吗?如果任何人都可以提供它,或许本说明书的更多背景将使它对我更有意义。
答案 0 :(得分:1)
在同一文档中
推荐使用的编码方案是UTF-8。但是,出于兼容性原因,如果未指定编码,则使用平台的默认编码。
您可以更改编码,但因为它不符合W3C标准,所以这不是一个好主意。
资源:
答案 1 :(得分:1)
Tomcat和其他一些Web服务器有一个单独的设置,用于控制GET请求中用于URL的解码器。具体来说,Tomcat将使用服务器的默认字符编码,除非在“Connector”的URIEncoding
属性中指定了一个。
我在处理类似问题时发现this post中的讨论很有帮助。
答案 2 :(得分:1)
某些国家/地区的网站确实使用其他编码,因为UTF-8对其语言效率低下。
网址通常不透明。它是由网站生成并由同一网站使用的ASCII字符序列。只要网站本身可以解析它,它就是好的。
另一方面,人们确实希望查看URL,尝试了解更精细的细节。浏览器在显示满%的编码八位字节的URL时,可能希望将它们转换回字符。不幸的是,它必须猜测字符编码,理论上编码可以是任何东西,甚至是专有编码。
此外,第三方可能希望生成他们无法控制的网站的URL。有多少程序动态生成Google搜索网址?同样,必须推测网站支持的编码。
因此,如果您是网站所有者,并且想要变得更好,那么最好支持UTF-8编码的URL。当然,你不必是。这是你的网址,取决于你。