【问题标题】:Most browsers automatically replace some characters based on set language?大多数浏览器会根据设置的语言自动替换一些字符?
【发布时间】:2020-12-08 18:07:42
【问题描述】:

在大多数浏览器中(我检查过 Chrome、Firefox 和 Opera),设置 lang="ro" 会自动将一些 cedille 字符替换为其他字符。

在这里查看:https://jsfiddle.net/dhtfb190/13

<!DOCTYPE html>
<html lang="ro">

<head>
  <meta charset="utf-8">
</head>

<body>
  <div style="font: 500% georgia;">&scedil;ș&scedil;ș&#350;Ș&#350;ŞȘ</div>
</body>

</html>

这不会发生在 Edge 或 IE 中,或者如果语言设置为“en”或未设置。此外,并非所有字体都会发生这种情况。例如,如果发生在格鲁吉亚,但它不会发生在 Arial。但是乔治亚州拥有所有这些字符,因为它们以 lang="en" 显示。

即使是转义的实例化,它也是一样的。

这是在哪里记录的?我在网上搜索了很多,只找到了一些用中文替换一些符号的例子。如何查看哪些字符被替换?为什么只对某些字体这样做?

【问题讨论】:

  • 你能更清楚地描述一下什么被什么取代了吗?
  • "ş" 到 'ș',"ţ" 到 'ț',"Ţ" 到 'Ț',"Ş" 到 'Ș'

标签: html browser unicode


【解决方案1】:

字形(“印刷字符”)取决于语言。这是一个很好的排版规则,好的字体支持这样的特性。

所以你得到了特定字符的“ro”变体。

它是“有据可查的”。它位于字体定义的一部分中(并且只有较新的字体格式支持它们),但很难提取此类数据。 Python 库很少。 [顺便说一句:在我的 TODO 列表中还有一个显示字符变体的项目]。

如果您查看字体的设计页面,您可能会发现一些关于哪些语言有变体的信息。

这在印度语言中更为明显,其中连字取决于确切的语言和文本的时代。在拉丁字符上,这主要是一个琐事问题。 Unicode 标准在同一字体中引用了法语和波兰语之间不同的重音倾向。

附录:

我能找到的最好的信息在https://docs.microsoft.com/en-us/typography/opentype/spec/gsub,例如在下面的引文中,又在文中重复:

ScriptList 标识字体中使用字形替换的所有脚本和语言系统。

【讨论】:

    【解决方案2】:

    我的猜测是它会检测语言并显示与字体不同的一组字符。

    像一些字体不支持äÄüÜöÖ,而是显示□□□□□□。 Georgia(以及其他字体)支持俄语,并且会自动切换其字符。

    您可以深入研究并检查 MS Word 或 InDesign 等文本编辑器,并查看单个字符的外观可能不同,也称为字形。

    https://helpx.adobe.com/incopy/using/glyphs-special-characters.html 你可以在这里查看,当你向下滚动一点时,当它们在 Glyph 窗口中并打开下拉菜单时,会有一个屏幕截图。您可以看到西里尔文有一个选项。所以 RO 使用的字形与 EN 不同。

    您可以在格鲁吉亚查看此页面,并看到他们有西里尔语的语言脚本标签。 https://docs.microsoft.com/en-us/typography/font-list/georgia

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多