2

对于我们的 Web 应用程序,我们有多个包含文本区域的 HTML 页面。我们所有的页面都使用 ISO-8859-1 字符集呈现。当在 Windows 机器上通过 IE6 访问页面并将“智能引号”等特殊字符复制到文本区域时,我们的某些页面使用 Windows 1252 字符编码提交页面。在其他情况下,页面似乎使用 UTF-8 字符编码提交。我一直在使用以下隐藏字段跟踪提交字符编码:

<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 字符和任何接受字符集属性,但都找不到。

附加说明:我在以下链接中找到了有关字符集隐藏输入的信息。

http://web.archive.org/web/20060427015200/ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html

4

1 回答 1

0

MSDN 声明 IE 仅接受“utf-8”作为此属性的值。

于 2010-09-03T13:29:40.690 回答