如何在网页上使用Unicode符号?

时间:2010-08-31 19:20:29

标签: unicode cross-browser

我在我正在制作的网页上使用了一些Unicode符号。出于这个例子的目的,让我们说这就是这个人:'☺'。

据我了解,在CSS的正确实现下,您可以设置所需的任何字体,如果它遇到该字体中不存在的字符,它将开始通过字体系列备份选择回退直到它找到一个有效的。

鉴于此,我在css中将我的font-family设置为这样:

font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif

我的理由是Tahoma捆绑了Windows。但是,我在网上发现,只有某些版本的Windows捆绑的Tahoma支持Unicode。 Helvetica是一种类似于Tahoma for Macs的字体。 “Arial Unicode MS”与Office 2000捆绑在一起,并且肯定支持Unicode。 San-serif是所有情况下的后备,也应该有望支持Unicode。

在大多数情况下,这很有效。然而,正如它常常做的那样,Internet Explorer似乎正在破坏我精心设计的计划。我无法弄清楚模式是什么,因为我在一台运行带有IE8的Vista的计算机上看到它,而另一台在带有IE7的Windows XP上看到它,但它在使用带有IE8 / IE7 Tester / IE6的Win7的开发机器上工作正常测试仪。我在一些不起眼的网页上找到了声明,在旧版本的IE上,它只会查找它的第一个字体,然后将其用于所有内容,即使该字体缺少给定的符号,但这不是解释为什么它会在Vista / IE8上发生。因此,我可爱的Unicode符号变成了一些盒子,但不是所有的IE用户。

在网络上处理Unicode符号的推荐方法是什么?它们是否仅适用于需要广泛浏览器兼容性的项目?我是否应该专门为处理旧IE而包含代码?是否还有其他需要担心的情​​况或平台?

编辑:更新了有关失败的系统的新信息。

3 个答案:

答案 0 :(得分:4)

  

只有某些版本的Windows捆绑的Tahoma具有Unicode支持

这不是真正的“Unicode支持”。 Tahoma支持Unicode,因为它具有Unicode代码点查找表。这并不意味着您为Unicode定义的每个字符都获得了一个字形...实际上几乎没有字体具有每个字符的字形。

没有版本的Tahoma包含U + 263A White Smiling Face的字形,因此您的代码是对字体后备功能的测试,与其他浏览器相比,IE(特别是IE6)不好用。 包含U + 26A3的更常见的Windows捆绑字体是纯Arial(不是“Arial Unicode”),因为版本3.00(包含在WinXP中)。

答案 1 :(得分:2)

您可以在CSS文件中使用IE覆盖为旧版本的Internet Explorer创建不同的行为。根据Internet Explorer的版本,每个语句之前的覆盖率为#_

在您的css中为Internet Explorer 6.0及更早版本的每个语句之前添加_ 在css中的每个语句前面放一个#仅用于Internet Explorer

示例:

 //Normal
    font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif;    
    //  IE 6.0 Earlier
    _font-family: Tahoma, Helvetica, sans-serif;
    // IE Only
    #font-family: Tahoma, Helvetica, "Arial Unicode MS", sans-serif;

答案 2 :(得分:0)

  

据我了解,在CSS的正确实现下,您可以设置所需的任何字体,如果它遇到该字体中不存在的字符,它将开始通过字体系列备份选择回退直到它找到一个有效的。

不幸的是,这不是它在Internet Explorer中的工作方式,至少在旧版本中没有。这些浏览器仅使用系统上可用的第一个字体系列。我有时使用的一种方法是为Unicode字符添加一个单独的CSS类:

<span class="unicode">[Unicode character]</span>

.unicode { font-family: "Lucida Sans Unicode", ..., sans-serif; }

我发现 Lucida Sans Unicode 是一个不错的选择,因为它自Windows 98以来在所有Windows版本上都预装了。它的Unicode支持并不像你那样完整&#39;但是,我希望。

但我开始喜欢图标字体。它们的优点是无论实际使用的字体如何,字形总是看起来一样。正如John Slegers在他的回答中提到的,有很棒的在线工具可以创建自己的自定义图标字体。