对于我们的Web应用程序,我们有多个包含文本区域的HTML页面。我们所有的页面都以ISO-8859-1字符集呈现。当通过Windows计算机上的IE6访问页面,并将特殊字符(如“智能报价”)复制到文本区域时,我们的某些页面会使用Windows 1252字符编码提交页面。在其他页面上,页面似乎使用UTF-8字符编码进行提交。我一直在跟踪使用以下隐藏字段提交字符编码:已提交字符编码 - _charset_隐藏字段
<input type="hidden" name="_charset_" />
在Windows 1252提交的字符编码的页面,我们收到的“windows-1252”的值。
在UTF-8提交字符编码页面上,我们收到一个空白值。
在后端,我们使用ISO-8859-1。理想情况下,我们希望提交字符编码,但是我没有看到在IE 6上强制执行该行为的选项。鉴于Windows 1252和UTF-8之间的选择,我希望在Windows 1252中提交内容,以便更有可能在页面在ISO-8859-1中重新呈现时正确呈现。
我已经深入研究了我们的页面,并且没有什么会跳出来,因为有些页面以一种字符编码提交。
1)当IE 6返回空白的字符集时,这是否实际上等同于UTF-8?当提交字符编码为UTF-8时,或仅在无法正确确定要使用的字符编码时,IE 6是否始终返回空白字符集?
2)页面上会有什么不同可能会导致IE 6在某些页面上选择Windows 1252,而在其他页面上则是UTF-8?我扫描了页面中的UTF-8字符和任何接受字符集属性,但找不到。
附加说明:我在下面的链接找到charset隐藏输入的信息。
http://web.archive.org/web/20060427015200/ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html
您的HTML表单中是否有“charset = ...”属性?如果不是,请尝试添加一个。 – 2010-07-08 05:17:17
我尝试在窗体上使用“windows-1252”和“iso-8859-1”提供“accept-charset”。这在行为上似乎没有任何区别。这可能是由IE(http://reference.sitepoint.com/html/form/accept-charset)对此属性“错误”支持的结果。 – user381221 2010-08-02 14:47:15