2010-07-01 53 views
1

对于我们的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

+0

您的HTML表单中是否有“charset = ...”属性?如果不是,请尝试添加一个。 – 2010-07-08 05:17:17

+0

我尝试在窗体上使用“windows-1252”和“iso-8859-1”提供“accept-charset”。这在行为上似乎没有任何区别。这可能是由IE(http://reference.sitepoint.com/html/form/accept-charset)对此属性“错误”支持的结果。 – user381221 2010-08-02 14:47:15

回答

0

MSDN指出IE只接受 “UTF-8” 作为该属性的值。

+1

让我们在这里清楚:当它将表单提交给服务器时,客户端浏览器会填充\ _charset \ _表单字段。这不是客户指定的。 – EricLaw 2013-04-15 18:49:44