0

任何人都明白为什么这些特殊字符:“Å's”得到一个非常奇怪的字距? http://www.ment.no/nettbutikk/skaaler/stjerneskaal/

他们在这里看起来很好:http ://www.ment.no/nettbutikk/skaaler/liten-sukkertoyskal-korall/在此处输入图像描述

4

1 回答 1

2

屏幕截图中显示的复制文本中的第一个单词是“Skål”,通常看起来很正常,但实际上并非如此:“å”实际上是两个字符,一个基本的拉丁字母“a”后跟 U+030A COMBINING RING以上。虽然这本身是正确的,并且与 Unicode 标准的正常“唓规范等效”,但现实更加模糊。

尽管“预期”规范等价序列会呈现相同的效果,但这通常不会发生。一方面,使用的字体可能不包含 U+030A,然后可能会发生奇怪的事情。此外,在 Unicode 标准或 HTML 规范中,对于软件实际上并没有普遍要求完全支持像 U+030A 这样的组合字符。

虽然不是 HTML 规范或草案的一部分,但使用规范化表格 C 是 W3C 的一般政策。这包括像“å”这样的字符用它们自己的代码表示的原则,而不是作为基本字符和组合变音符号的对。请参阅万维网 1.0 的字符模型:规范化(可能并且可能会发生重大变化的工作草案,但规范化原则可能得到了广泛的支持)。

在这种特定情况下,以下 CSS 声明适用于文本:

font-family: DIN,Arial,Helvetica,sans-serif !important;

这里发生的是 DIN 字体用于基本拉丁字母,但不用于 U+030A,因为该字符在 DIN 字体中没有字形。Arial 字体用于它。通常,当您将来自一种字体的基本字符与来自另一种字体的组合标记混合时,您应该期待 diaster 或更糟。

最简单的解决方案似乎是使用“å”作为单个“预组合”字符 U+00E5,而不是两个字符序列。DIN 字体包含它。

另一种解决方案是放弃使用 DIN。当使用 Arial 时,组合标记在现代浏览器中可以正常工作,因为现在它将用于来自相同字体的基本字符。

请注意,您可能对其他字符也有类似的问题,例如“é”(带有重音的 e)。

于 2014-02-18T17:37:03.937 回答