4

从历史上看,许多宣传自己采用ISO-8859-1 ( Latin-1 ) 编码的网页实际上包含Windows-1252编码(这是 Latin-1 的严格超集)的内容。

浏览器更新了他们的行为以将所有 Latin-1 文本视为 Windows-1252,这已经是一个足够大的问题了。这种行为随后被合理化为HTML5 [draft] 标准

我正在写一组页面,我想在上面显示两种编码之间的区别,但这似乎是不可能的,因为我的 Latin-1 页面实际上从未被视为 Latin-1。在任何浏览器中,有什么方法可以真正强制尊重页面编码并显示演示?

4

1 回答 1

2

恐怕没有直接的办法。我认为 Opera 曾经有一个选项,它的当前版本有一个选项(通过 opera:config)来强制特定的编码,覆盖 HTTP 标头等等,但即使在那里,iso-8859-1 实际上意味着 windows-1252。我也检查了 Opera 版本 5 和 9,没有运气。

但是使用当前版本的 Opera(12.02),您可以通过 View → Encoding 设置编码,并在“Western”设置中(其中 iso-8859-1 表示 windows-1252 照常),选择 iso-8859-15 会导致在显示中有效忽略的字节范围 130–159(十进制),根据 windows-1252 不显示。因此,这或多或少意味着将数据视为真正的 iso-8859-1——当然,除了 iso-8859-1 和 iso-8859-15 不同的少数图形字符,使用后者。

从技术上讲,这些字节代表 iso-8859-1 中的 C1 控件,在上述模式中,Opera 实际上是这样对待它们的。它们在 HTML 中是不允许的,但通常只是被浏览器忽略。

于 2012-11-08T06:55:47.177 回答