我有一个html表单,可以做各种奇怪的后端事情.这在firefox中运行良好.在大多数情况下,它在IE中运行良好
然而,(英镑)£符号会导致问题,并且似乎在提交中受到影响.
表格是这样的
我想我以前见过这个问题但是不记得解决了.
编辑,欧元符号€工作正常
编辑2,事实上如果我把€符号与£符号一起使用也可以.如果我使用不在iso8859-1的扩展部分中的字符来查看问题,它可以正常工作.如果我使用iso8859-1的扩展机箱,他们就会受到攻击.那么如何让IE使用accept-charset所说的字符集呢?
接收字符集= "UTF-8"
在IE中没有做你认为它做的事情(或标准说它做的).相反,IE使用值('UTF-8')作为替代的编码列表,如果无法使用通常的默认编码(与页面自己的编码相同)编码字段.
因此,如果您添加此属性并且您的页面尚未包含在UTF-8中,您可以将字符提交为页面编码或 UTF-8,并且您无法知道表单提交阅读脚本!
出于这个原因,你永远不应该使用accept-charset; 相反,您应始终确保包含表单的页面正确地作为"Content-Type:text/html; charset = utf-8"(通过HTTP标头和/或)提供.
事实上,如果我将€符号与£符号放在一起,它也可以正常工作.
是的,那是因为'€'无法在页面的默认编码中编码(可能是ISO-8859-1).所以IE转向发送编码为UTF-8的字段,这是你一直想要的.