Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 接受字符集=";UTF-8“;参数在表单中使用时不起任何作用_Html_Forms_Spring Mvc_Encoding_Freemarker - Fatal编程技术网

Html 接受字符集=";UTF-8“;参数在表单中使用时不起任何作用

Html 接受字符集=";UTF-8“;参数在表单中使用时不起任何作用,html,forms,spring-mvc,encoding,freemarker,Html,Forms,Spring Mvc,Encoding,Freemarker,我在表单中使用accept charset=“utf-8”属性,发现当使用非ascii进行表单post时,请求头中的头具有不同的accept charset选项。我有什么遗漏吗?我的表格是这样的 <form method="post" action="controller" accept-charset="UTF-8"> ..input text box .. submit button </form> ..输入文本框 .. 提交按钮 提前感谢所问的问题是自相矛盾的

我在表单中使用accept charset=“utf-8”属性,发现当使用非ascii进行表单post时,请求头中的头具有不同的accept charset选项。我有什么遗漏吗?我的表格是这样的

<form method="post" action="controller" accept-charset="UTF-8">
..input text box
.. submit button
</form>

..输入文本框
.. 提交按钮

提前感谢

所问的问题是自相矛盾的:标题说明
接受字符集
参数没有任何作用,而问题正文说明当使用
接受字符集
属性(这是正确的术语)时,“请求头中的头具有不同的accept charset选项”。我想后一条语句中缺少否定

浏览器根据自己的原则和设置在HTTP请求头中发送
Accept字符集
参数。例如,my Chrome发送
Accept字符集:windows-1252,utf-8;q=0.7,*;q=0.3
。服务器端软件通常会忽略这样的头,但它可以使用(而且它是为使用而设计的)若服务器端软件(本例中为表单处理程序)能够在响应中使用不同的编码,则确定在服务器响应中使用哪种编码

form
元素中的
accept charset
属性预计不会影响HTTP请求头,也不会影响HTTP请求头。它的目的是指定用于请求中表单数据的字符编码,这就是它的实际作用。关于这一点,尽管出于某些奇怪的原因,它使用复数:“提供提交时使用的字符编码”。我想原因是您可以指定替代编码,以应对浏览器无法使用首选编码的情况。例如,在Chrome中实际发生的情况是,如果您使用
accept charset=“foobar utt-8”
,然后使用UTF-8

实际上,该属性用于使数据提交的编码不同于包含表单的页面的编码。假设您的页面是ISO-8859-1编码的,并且有人在您的表单中键入希腊或希伯来语字母。浏览器必须执行一些错误恢复,因为这些字符不能在ISO-8859-1中表示。(在实践中,他们将字符转换为数字字符引用,这在逻辑上是完全错误的,但在实用上可能是他们能做的最好的方式。)使用
在这里有帮助:无论编码是什么,表单数据都将作为UTF-8编码发送,UTF-8编码可以处理任何字符


如果您希望告诉表单处理程序应该在其响应中使用哪种编码,那么您可以添加一个隐藏(或非隐藏)的你尝试了哪些用户代理?你看了吗?谢谢你的回答,这很有帮助。你知道如何将accept charset default设置为UTF-8吗?
accept charset
的默认值是
UNKNOWN
,根据HTML4.01,但HTML5草稿更好地反映了现实:默认值是文档的字符r编码。如果您的意思是设置创作软件中使用的默认值,那么这一切都取决于该软件。您的Chrome的版本是什么?Accept Charset已经过时,您不应该再依赖它:@CyberRusher,这在Chrome 35中仍然是相关的。
Accept Charset
HTML属性与
Accept属性不同-Charset
HTTP头(这是链接文档讨论的内容)。@JukkaK.Korpela,accept Charset HTML属性是否控制accept Charset HTTP头?我的Chrome版本是“35.0.1916.153 m”,但请求头中没有任何accept Char。