1

有一个网站,其中包含大量异国语言的文本片段。它们将需要几个特殊的 Unicode 字符。

我需要一种方法来保证在每个主要操作系统的每个主要浏览器中正确显示每个特殊字符。

如果我使用标准的网络安全模式,例如“'Times New Roman', Times, serif;”,是否有可能特殊字符在不同的机器上看起来会有所不同?

编辑:我实际上并不需要使用所有的 Unicode 字符。如果它们可以安全使用,那么具有尽可能多的特殊字母的较小但广泛支持的子集也可以做到这一点。

Edit2:我想要实现的是一种方法,我可以指定(和使用)尽可能多的特殊字符,在所有主流浏览器和操作系统中正确呈现,以防止出现外来语言文本已满的情况问号或错误呈现的字符。

4

3 回答 3

3

您将需要一个可下载的字体(网络字体),或者可能需要几个这样的字体,使用@font-face. 如果使用得当,现在几乎所有相关的浏览器都支持这种技术。困难的部分是决定字体,具体的解决方案取决于所需的字符库。有关一般信息和一些提示,请参阅我在 HTML 中使用特殊字符的指南

“网络安全字体”不是。确实,大多数系统都有一种名为 Times New Roman 的字体,尽管它的字符库各不相同,例如 Android 没有它。但Times New Roman在人物覆盖方面相当不足。

于 2013-02-21T17:47:47.247 回答
1

使任何两个符号按像素完美呈现是不可能的,或者至少非常非常困难。举一个简单的例子,在 OSX 和 Windows 之间,您会发现任何给定字体的字体粗细都存在很大差异。但似乎您的担心只是避免将角色完全替换为另一个角色。例如,不支持的字符被替换为问号或方框。

如果这是真的,第一步将是找到一个包含所有你想要的字符的字体。如果该字体恰好是“网络安全字体” ——也就是说,大多数常见操作系统的标准字体——那么请继续使用它。

如果该字体碰巧不是网络安全字体,请@font-face它。这允许任何支持 @font-face 的浏览器显示您引用的任何字体。

请注意,如果您打算这样做,则需要了解字体的许可证。您不想绕过@font-面向本地托管的 Proxima Nova。

并且在主题支持上,@font-face拥有卓越的浏览器支持。这是一篇关于@font-face 跨浏览器支持的好文章

当然,这只是如何实现跨浏览器解决方案的方法。如果您要问的是“我该怎么做,应该使用什么字体?” 嗯......这是一个不同的问题!

于 2013-02-21T17:43:29.350 回答
1

对于异国语言?您不能保证这一点,因为许多用户在他们的系统上不支持外来语言。即使您使用@font-face,标准的美国或欧洲 Windows 计算机也无法正确显示阿拉伯语或某些其他语言,因为缺少这种支持,而不仅仅是缺少字体。

查看有关韩国、沙特阿拉伯、中国等的 Wikipedia 文章 - 它们都带有警告框“本文包含 [语言] 字符。如果没有适当的渲染支持,您可能会看到问号、方框或其他符号”。如果可以解决,他们早就解决了。

因此,您唯一的选择是将图像用于外来语言的文本 - 这就是 Omniglot 所做的,参见例如http://www.omniglot.com/writing/akkadian.htm - 或者像 Wikipedia 那样显示文本,以及链接教人们如何激活对这些语言的支持。

于 2013-02-22T18:04:32.777 回答