以表格形式使用时,accept-charset =“ UTF-8”参数不起作用

我在表单中使用accept-charset =“ utf-8”属性,发现使用非ascii进行表单发布时,标头在请求标头中具有不同的accept

charset选项。我有什么想念的吗?我的表格看起来像这样

<form method="post" action="controller" accept-charset="UTF-8">

..input text box

.. submit button

</form>

提前致谢

回答:

所问的问题是自相矛盾的:该标题表示该accept-charset参数不执行任何操作,而问题正文表示,当使用该accept-

charset属性(这是正确的术语)时,“标头在其中具有不同的accept charset选项。请求标头”。我想后面的陈述中缺少一个否定词。

浏览器Accept-Charset根据自己的原理和设置在HTTP请求标头中发送参数。例如,我的Chrome发送Accept-

Charset:windows-1252,utf-8;q=0.7,*;q=0.3。服务器端软件通常会忽略此类标头,但是如果服务器端软件(表单处理程序)可以使用(并且设计为使用)它可以确定在服务器响应中使用哪种编码。

,在这种情况下)可以在响应中使用不同的编码。

元素中的accept-

charset属性form预计不会影响HTTP请求标头,并且不会。它旨在指定用于请求中的表单数据的字符编码,而这实际上是它的作用。在HTML

4.01规范是模糊的这一点,但W3C HTML5草案放它要好得多,虽然一些奇怪的原因使用复数:“给人的字符编码将被用于提交”。我想这是因为您可以指定其他编码,以准备浏览器无法使用首选编码的情况。例如,在Chrome中实际发生的情况是,如果您使用accept-

charset="foobar utt-8",则使用UTF-8。

实际上,该属性用于使数据提交的编码不同于包含表单的页面的编码。假设您的页面是ISO-8859-1编码的,并且有人在您的表单中键入希腊或希伯来字母。浏览器将必须执行一些错误恢复,因为这些字符无法在ISO-8859-1中表示。(在实践中,他们将字符转换为数字字符引用,这在逻辑上是全错误的,但在务实上也许是他们可以做的最好的事情。)<form

charset=utf-8>在此处使用帮助:无论编码是什么,表单数据都将以UTF-8编码发送,可以处理任何字符。

如果您希望告诉表单处理程序其响应中应使用哪种编码,则可以为此在表单中添加一个隐藏(或非隐藏)字段。

以上是 以表格形式使用时,accept-charset =“ UTF-8”参数不起作用 的全部内容, 来源链接: utcz.com/qa/423082.html

回到顶部