3 回答
TA贡献1876条经验 获得超7个赞
一般规则似乎是浏览器根据表单的内容类型对表单响应进行编码。这是一个猜测,如果服务器发送给我们“text / xml; charset = iso-8859-1”,那么他们希望以相同的格式返回响应。
如果您只是在URL栏中输入一个URL,那么浏览器没有可以使用的基页,因此只需要猜测。所以在这种情况下它似乎一直在做utf-8(因为你的输入都产生了三个八位字节的表格值)。
可悲的事实是,AFAIK没有标准用于将查询字符串中的值设置为什么字符,或者实际上URL中的任何字符都应该被解释为。至少在查询字符串值的情况下,没有理由认为他们一定不对应的字符。
这是,你必须告诉你期望的字符集的查询字符串编码为---例如,在Tomcat中,你必须调用request.setEncoding()(或类似的方法),你的服务器架构的已知问题之前,你调用任何request.getParameter()方法。关于这个主题的文档缺乏可能反映了许多开发人员对该问题缺乏认识。(我经常向Java受访者询问Reader和InputStream之间的区别是什么,并经常看到空白的样子)
TA贡献1875条经验 获得超5个赞
IRI(RFC 3987)是取代URI / URL(RFC 3986及更早版本)标准的最新标准。URI / URL本身不支持Unicode(嗯,RFC 3986增加了对未来基于URI / URL的协议的支持,但不会更新过去的RFC)。“%uXXXX”方案是在某些情况下允许Unicode的非标准扩展,但并非每个人都普遍实现。另一方面,IRI完全支持Unicode,并要求在进行百分比编码之前将文本编码为UTF-8。
- 3 回答
- 0 关注
- 637 浏览
相关问题推荐
添加回答
举报