相关疑难解决方法(0)

在Tomcat上处理URI中的字符编码

在我试图帮助的网站上,用户可以在浏览器中输入一个URL,如下面的汉字,

  http://localhost:8080?a=??
Run Code Online (Sandbox Code Playgroud)

在服务器上,我们得到

  GET /a=%E6%B5%8B%E8%AF%95 HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

如您所见,它是UTF-8编码,然后是URL编码.我们可以通过在Tomcat中将编码设置为UTF-8来正确处理.

但是,有时我们在某些浏览器上获得Latin1编码,

  http://localhost:8080?a=ß
Run Code Online (Sandbox Code Playgroud)

变成

  GET /a=%DF HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

无论如何在Tomcat中正确处理这个问题?看起来服务器必须做一些智能猜测.我们不希望100%正确处理Latin1,但是假设一切都是UTF-8,那么任何东西都比我们现在做的要好.

服务器是Tomcat 5.5.支持的浏览器是iPhone 6 +,Firefox 2+和iPhone上的Safari.

java encoding tomcat servlets internationalization

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

encoding ×1

internationalization ×1

java ×1

servlets ×1

tomcat ×1