服务器如何知道查询字符串中的哪个字符在GET请求中使用?

时间:2016-04-23 17:58:11

标签: http unicode encoding utf-8

我最近遇到了一些关于字符编码的问题。 当我尝试触发HTTP GET请求(其中包含查询字符串中的一些非ascii字符)时,我发现服务器无法正确解码参数。

我目前的解决方案是配置tomcat的server.xml,将属性URIEncoding="utf-8"添加到<Connector>元素。 好吧,它解决了这个问题。但我的问题是:如果URL没有用utf-8编码怎么办?(就像一些ANSI编码,你可以这样做,对吗?)

除了设置固定值之外,服务器是否有办法找出URL使用的编码?

PS:我知道一些字符编码的基础知识以及UTF-8和Unicode之间的区别。

1 个答案:

答案 0 :(得分:1)

服务器指示它将接受(其编码的百分比)URL到其资源的字符集。如果客户端在错误的字符集中发送URL,则无法正常工作。但是,没有协议允许服务器通告其所需的字符集。所以它有点像22。如果URL源自HTML页面,请使用HTML的charset。否则你只需要猜测,如果服务器不接受UTF-8,你可能会猜错了。