![我如何告诉 Firefox 忽略不可打印的字符?](https://linux22.com/image/1260997/%E6%88%91%E5%A6%82%E4%BD%95%E5%91%8A%E8%AF%89%20Firefox%20%E5%BF%BD%E7%95%A5%E4%B8%8D%E5%8F%AF%E6%89%93%E5%8D%B0%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
编辑:摘要
显然,在这种情况下要显示的字符是“en-dash”。
这一页在中间有一个表格,显示–
某些软件会将正确的十六进制代码 2013 转换为 0096。(查看表格中的第一行)。
这个答案Stackoverflow 上的解释是,这是 Windows-1252 和 UTF-8 之间的混淆
这篇博客文章强制执行:
字符 150 (0x96) 是未显示的 C1 控制字符范围内的 Unicode 字符“START OF GUARDED AREA”,但在 Windows-1252 编码中,它映射到可显示字符 0x2013“en-dash”(短破折号)。
其他人在制作内容时也遇到了这个问题,例如这个答案Stackoverflow 上展示了如何用 0x2013 替换 0x0096。
谷歌一定意识到了这一点,因为正如我在下面最初的问题中所述,谷歌缓存的亚马逊页面版本–
似乎会自动纠正他们缓存的页面上的这些错误。
我尝试将我的编码设置为 Windows-1252,但没有帮助。
所以现在我的问题是,我怎样才能告诉 Firefox 忽略这些不可打印的字符?
原文内容如下:
(Windows XP 上的 Firefox 3.6.13)
每次我浏览网页时,都会注意到某些网页上有一个奇怪的字符。它是一个方框的轮廓,里面有一个 4 位数字。
包含这些字符的页面示例为: http://aws.amazon.com/ec2/#highlights
在每个部分标题(弹性、完全受控……)之后,我都会看到一个带有数字“0096”的框。我查看了 Google 上的缓存版本,Google 已经替换了–
它,所以我猜我应该在那里看到一个破折号,而不是带有数字的框。
我曾尝试更改 Firefox 中的字符编码,但无法找到可以正确显示这些字符的编码。
有没有办法让 Firefox 查看这些字符?
提前致谢!
编辑-添加“特殊”字符的屏幕截图:
编辑 #2 - 在 Ubuntu 中尝试 - 新截图
我登录了我的 Ubuntu 桌面,并在 Chrome 和 Firefox 中浏览了亚马逊页面。Chrome 完全忽略了字符,即使我检查或查看页面源代码也是如此。Unbutu 中的 Firefox 显示的字符与我的 Windows XP 机器上的 Firefox 完全相同。我复制了该字符并在命令行中对其进行了调整 - 以下是结果的屏幕截图:
看起来我也可以将这个字符粘贴到这个帖子中:“”
这绝对不仅限于 Windows XP。我尝试将终端的字符编码设置为 Windows 1252(来自下面 Dennis 的评论),但它只是将该字符显示为问号。
我使用 wget 和 curl 下载了该网页,两个输出都显示以下字符:<96>
这让我怀疑这个字符是否对任何人都正确显示?看来 webkit 只是忽略了它,我的 IE6 忽略了它,Firefox 显示带有数字的框。我不得不想象亚马逊的设计团队可以正确看到它?
让这些字符正确显示并不是什么大问题,但如果有解决方案就更好了。
答案1
0096 很可能是 ' 字符的 ASCII 引用,可在 HTML 中显示为`
然而,查看您的链接,HTML 看起来很正常,并且没有引用–
...
<p><span class="product_highlights">Elastic</span> Amazon <span class="caps">EC2</span> enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds or even thousands of server instances simultaneously. Of course, because this is all controlled with web service APIs, your application can automatically scale itself up and down depending on its needs.</p>
<p><span class="product_highlights">Completely Controlled</span> You have complete control of your instances. You have root access to each one, and you can interact with them as you would any machine. You can stop your instance while retaining the data on your boot partition and then subsequently restart the same instance using web service APIs. Instances can be rebooted remotely using web service APIs. You also have access to console output of your instances.</p>
<p><span class="product_highlights">Flexible</span> You have the choice of multiple instance types, operating systems, and software packages. Amazon <span class="caps">EC2</span> allows you to select a configuration of memory, <span class="caps">CPU</span>, instance storage, and the boot partition size that is optimal for your choice of operating system and application. For example, your choice of operating systems includes numerous Linux distributions, Microsoft Windows Server and OpenSolaris.</p>
...
Firefox 在显示破折号字形时应该没有问题,因为我刚刚在 3.6.* 上进行了测试...
<html>
<head>
<body>
My dash is –
</body>
</head>
</html>
...将上述代码复制并粘贴到测试文档中,并将其命名为 test.html,然后在 Firefox 中打开。它应该可以毫无问题地显示您的仪表盘。
编辑:正如 Dave 指出的那样,0x96 是 en dash 的 ANSI 等效项。根据这种理解,这似乎是与页面本身的 doctype 规范有关的解析问题。请查看此主题。
您可以提取 HTML 并修改文档类型,看看问题是否确实出在这里。这很可能是编码值之间的交叉,即...ANSI -> Unicode;作为 Unicode,该值是不可打印的字符。
答案2
错误似乎出在页面上。尝试在 Firefox 中将字符编码更改为 Windows-1252,看看是否有帮助。
许多配置不良的网页会显示它们是 ISO-8859-1 或 UTF-8,但实际上是 Windows-1252。
如果它是您控制的页面,请尝试重新保存并指定不同的编码。