如何在IE浏览器中使用HTML显示Unicode字符

10

我正在尝试使用以下代码在页面底部显示版权和无限符号:

&#x00A9 Copyright Mikle 2009 - &#x221E

这在Firefox 2、3和Chrome中完美运行。然而,在IE7中,它显示了实际的代码(就像您上面看到的)而不是我期望的内容,而其他浏览器则正常显示。

© Copyright Mikle 2009 - ∞

这可能是一些愚蠢的事情,但我现在明白了为什么IE备受诟病。我该如何解决这个问题?

3个回答

21

实体需要使用分号:

©

在这种情况下,Firefox的行为过于热心了。


好吧,这似乎是一个愚蠢的要求,因为它不是一个常见的短语(“Hello my friend &#x00fe!”),为什么一定要寻找分号呢?看起来是不必要的复杂性。 - Mikle
2
这是HTML推荐的一部分,而HTML推荐更喜欢完整性(导致解析器更简单)而不是假设。这里的讽刺是,你假设IE有错,而事实上是IE严格遵守了“标准”。;-) - Rahul
3
我同意这有点讽刺。我读了很多关于浏览器兼容性的文章,包括IE的问题以及整个strict和loose parsing(解析)的问题,结果不到三小时我做我的第一个网页项目时就被它坑了。(我之前主要是做桌面程序方面的编程。) - Mikle

6
  1. 使用十进制值。
  2. 即使在可选上下文中,始终用 ;(分号)终止实体。
  3. 尽可能使用命名实体。您的示例实体应编写为© © 和 ∞ ∞。

另一种方法是忘记实体,并只放置纯UTF-8字符。


这个方法可以工作,但是十六进制是Unicode的一部分,所以我会使用第二种方法。 - Mikle
你能详细说明一下吗? - vartec
如果您将HTML文本限制为7位ASCII,那么您的生活将变得更加轻松。如果您使用8位编码,则必须确保您的Web服务器插入正确的响应参数以识别该编码。而且很有可能会有人在某个地方搞砸。 - kdgregory
1
当然,这样做有它的优点和缺点。但是,UTF-8是当前的标准,所有RFC都建议使用它。我们不应该停留在1960年代,只因为某个人可能会搞砸。 - vartec
@kdgregory 我不会仅仅因为它容易就使用7位ASCII码...世界上还有其他人(我也是其中之一),我不会忽视他们。 - Mikle

2

你不能使用 "©" 吗?

这个页面列出了常用符号的HTML代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接