Firefox、Chrome 和 Safari 中的 Unicode 字体呈现差异
Unicode Font Rendering Difference in Firefox, Chrome, and Safari
当我遇到这个问题时,我正在从一些文件中导入内容。一些 unicode 字符在 Chrome 和 Safari 中呈现错误(在 Firefox 中不是问题)。
有问题的符号是:र्इ
以下每个浏览器的屏幕截图:
火狐
Chrome
野生动物园
我发现其他使用相同字符的页面(通过简单的 Google 搜索)也有同样的问题。下面是一些示例:
- https://economictimes.indiatimes.com/hindi/wealth/tax/these-are-5-ways-to-e-verify-your-itr/articleshow/66703327.cms
- https://www.incometaxindia.gov.in/hindi/Pages/tax-services/registration-e-filing.aspx
- https://www.patrika.com/industry/itc-opens-website-to-sell-products-patanjali-will-be-loss-4116777/
这是什么原因造成的?是因为无效的字符,还是页面上的字体问题?
问题是只有几个字符。大多数内容在所有浏览器中都呈现得很好。
梵文字形 र्इ 是一个连字,由三个 Unicode 字符组成:
- ¶ (U+0930) 梵文字母 Ra
- ् (U+094D) 梵文符号 Virama
- इ (U+0907) 梵文字母 I
其中的第二个 Virama 是一种变音符号,用于指示通常属于其所附字母发音的一部分的元音在语音中应被抑制。当 र 与此变音符号组合时,生成的字母如下所示:र्
许多成对的梵文字母可以组合形成连字。在拉丁文字中,连字通常与组成它们的字母相似——例如,æ 可以清楚地识别为 a 和 e – 但情况并非总是如此: 符号 & 起源于 et 的连字,例如。
在您找到的示例中,र् 和 इ 的组合可以写成 र्इ or र्इ 1 ……意思是一样的,读者都能理解梵文脚本。
因此,Firefox 和 Safari 都可以正确显示字符。 Chrome 不是,这可能是使用的字体或 Chrome 本身的问题。
1 在我机器上的 Firefox 中,字体能够呈现适当的连字,这两个看起来不同(因为我添加了Zero Width Non-Joiner 在一个中间而不是另一个)。在这种情况下,您的里程可能会有所不同。
当我遇到这个问题时,我正在从一些文件中导入内容。一些 unicode 字符在 Chrome 和 Safari 中呈现错误(在 Firefox 中不是问题)。
有问题的符号是:र्इ
以下每个浏览器的屏幕截图:
我发现其他使用相同字符的页面(通过简单的 Google 搜索)也有同样的问题。下面是一些示例:
- https://economictimes.indiatimes.com/hindi/wealth/tax/these-are-5-ways-to-e-verify-your-itr/articleshow/66703327.cms
- https://www.incometaxindia.gov.in/hindi/Pages/tax-services/registration-e-filing.aspx
- https://www.patrika.com/industry/itc-opens-website-to-sell-products-patanjali-will-be-loss-4116777/
这是什么原因造成的?是因为无效的字符,还是页面上的字体问题?
问题是只有几个字符。大多数内容在所有浏览器中都呈现得很好。
梵文字形 र्इ 是一个连字,由三个 Unicode 字符组成:
- ¶ (U+0930) 梵文字母 Ra
- ् (U+094D) 梵文符号 Virama
- इ (U+0907) 梵文字母 I
其中的第二个 Virama 是一种变音符号,用于指示通常属于其所附字母发音的一部分的元音在语音中应被抑制。当 र 与此变音符号组合时,生成的字母如下所示:र्
许多成对的梵文字母可以组合形成连字。在拉丁文字中,连字通常与组成它们的字母相似——例如,æ 可以清楚地识别为 a 和 e – 但情况并非总是如此: 符号 & 起源于 et 的连字,例如。
在您找到的示例中,र् 和 इ 的组合可以写成 र्इ or र्इ 1 ……意思是一样的,读者都能理解梵文脚本。
因此,Firefox 和 Safari 都可以正确显示字符。 Chrome 不是,这可能是使用的字体或 Chrome 本身的问题。
1 在我机器上的 Firefox 中,字体能够呈现适当的连字,这两个看起来不同(因为我添加了Zero Width Non-Joiner 在一个中间而不是另一个)。在这种情况下,您的里程可能会有所不同。