我最近遇到了一些关于字符编码的问题。 当我尝试触发HTTP GET请求(其中包含查询字符串中的一些非ascii字符)时,我发现服务器无法正确解码参数。
我目前的解决方案是配置tomcat的server.xml,将属性URIEncoding="utf-8"
添加到<Connector>
元素。
好吧,它解决了这个问题。但我的问题是:如果URL没有用utf-8编码怎么办?(就像一些ANSI编码,你可以这样做,对吗?)
除了设置固定值之外,服务器是否有办法找出URL使用的编码?
PS:我知道一些字符编码的基础知识以及UTF-8和Unicode之间的区别。
答案 0 :(得分:1)
服务器指示它将接受(其编码的百分比)URL到其资源的字符集。如果客户端在错误的字符集中发送URL,则无法正常工作。但是,没有协议允许服务器通告其所需的字符集。所以它有点像22。如果URL源自HTML页面,请使用HTML的charset。否则你只需要猜测,如果服务器不接受UTF-8,你可能会猜错了。