gpt4 book ai didi

http - 将 utf8=✓ 添加到查询中有什么意义?

转载 作者:可可西里 更新时间:2023-11-01 17:10:48 26 4
gpt4 key购买 nike

根据我的阅读,浏览器似乎必须以生成请求的表单的字符集在请求中发送 x-www-form-urlencoded 数据。

那么,为什么有些网站,比如http://www.railscasts.com ,将 ?utf8=%E2%9C%93(即 ?utf8=✓)添加到表单中?这是一种让做某事更容易的技巧吗?该页面的字符集已经是 UTF-8(我检查了标题),所以它不能保证浏览器将发送 UTF-8 吗?哪些浏览器不这样做?根据 w3schools,所有主流浏览器都从表单中实现接受字符集:

<form accept-charset="UTF-8">

那么为什么不使用它呢?或者什么都没有(因为响应指定了 UTF-8)?

我做了一些调查:

在 UTF-8 页面中,搜索木 (U+6728) 会给出:

search:%E6%9C%A8

所以它使用了百分比编码,它似乎是对任何底层字符集进行逐字节编码的十六进制编码。好吧,这绝对有效,因为 this place说那是UTF-8编码。这很好,但这是简单的情况,我正在尝试将 UTF-8 数据发送到 UTF-8 页面。

现在假设我有一个 ISO-8859-1 页面,上面有一个表单。这是一个 GET 表单,我决定为一个字段输入相同的 。好吧,那绝对不是 ISO-8859-1。所以 Chrome 将其编码为

search:&#26408;

然后将其适本地进行百分比编码为 %26%2326408%3B。我验证了 IE 8 在 Windows 中做同样的事情。那么 UTF-8 hack 的意义何在?

相关问题:Detecting the character encoding of an HTTP POST request

最佳答案

添加一些特殊字符作为隐藏数据的技术是在过去开发的,当时不同的浏览器以不同的编码提交数据。它被描述为例如在文档中FORM submission and i18n如下:“作者可以在表单中添加一个精心设计的“隐藏”字段,其中包含一些诊断字符。当这个字段被提交时,服务器可以调查提交内容的格式,并得出一些关于客户端软件使用的编码的结论。”

该技术已经失去了它最初的大部分相关性,但它仍然是进行一些基本正确性检查的一种廉价方法。它可以检测问题,例如当有人创建表单的副本并使用它(由于无知、粗心或其他原因)提交数据时,编码不是它应有的编码。

关于http - 将 utf8=✓ 添加到查询中有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com