为什么Unicode以它的方式实现土耳其语?

时间:2018-01-02 20:39:32

标签: unicode

土耳其语点缀并且无点是两个独立的角色,每个角色都有自己的大写和小写形式。

Uppercase  Lowercase
I U+0049   ı U+0131
İ U+0130   i U+0069

在使用拉丁字母的其他语言中,我们有

Uppercase  Lowercase
I U+0049   i U+0069

现在,Unicode Consortium可以将其实现为六个不同的字符,每个字符都有自己的大小写规则,但是决定只使用四个,在不同的语言环境中使用不同的大小写规则。这对我来说似乎很奇怪。 该决定背后的理由是什么?

具有六个不同字符的可能实现:

Uppercase  Lowercase
I U+0049   i U+0069
I NEW      ı U+0131
İ U+0130   i NEW

目前使用的代码点:

U+0049 ‹I› \N{LATIN CAPITAL LETTER I}
U+0130 ‹İ› \N{LATIN CAPITAL LETTER I WITH DOT ABOVE}
U+0131 ‹ı› \N{LATIN SMALL LETTER DOTLESS I}
U+0069 ‹i› \N{LATIN SMALL LETTER I}

2 个答案:

答案 0 :(得分:4)

有一个理论和一个实际原因。

理论上的一点是大多数拉丁字母字母的i和土耳其语和阿塞拜疆字母的i是相同的,而且大多数拉丁字母的I也是如此。字母和土耳其语和阿塞拜疆语的I是相同的。字母表之间的关系也有所不同。人们可以很容易地认为它们实际上是不同的(正如你提议的编码对待它们),但这就是语言委员会在20世纪20年代在土耳其定义字母和拼写的时候如何考虑它们,而阿塞拜疆在20世纪90年代使用的那些复制了它。

(相比之下,有一些基于拉丁语的脚本i在语义上应该被视为与i相同,尽管从未用点绘制[只是对不同形状的字形使用不同的字体],特别是那些在Carolingian之前出现的,或者来自一个,例如Gaelic脚本是如何从Insular脚本派生出来的。事实上,特别重要的是永远不要用i上的一个点写盖尔语的盖尔语。与其使用的拼写的síbuailte变音符号相比较。遗憾的是,许多尝试这个脚本的字体不仅会增加一个点,而且会造成更糟糕的拼写错误,使其成为一个中风,因此与fada变音符号混淆,因为它可能出现在i而síbuailte不能,因此使单词的拼写显示错误。可能有更多“爱尔兰”字体出现此错误而不是没有。)

实际原因是现有的土耳其字符编码,例如ISO / IEC 8859-9,EBCDIC 1026和IBM 00857,它们具有ASCII或EBCDIC的公共子集已被视为iI与ASCII或EBCDIC中的那些相同(也就是说,大多数拉丁字母字母表中的那些)和ıİ作为单独的字符,它们是大小写改变的等价物;就像Unicode现在一样。与此类脚本的兼容性需要继续这种做法。

答案 1 :(得分:1)

该实现的另一个实际原因是,否则会给土耳其语键盘布局用户带来极大的困惑和困难。

想象一下,它是按照您建议的方式实现的,在土耳其语键盘上按 ıI 键和 键会生成土耳其语特定的 Unicode 字符。然后,即使土耳其语键盘布局包括所有 ASCII/基本拉丁字符(例如,qwx 都在键盘上,即使它们不在土耳其语字母表中),一个字符将变得无法输入。因此,例如土耳其用户将无法访问 wikipedia.org,因为他们实际输入的是 w�k�ped�a.org。也许 Web 浏览器可以专门为土耳其用户实现一种变通方法,但请考虑其他用例和堆将变得难以使用的非本地化应用程序。也许土耳其语键盘布局可以添加一个额外的键来再次成为 ASCII 完整的,这样就有了三个键,即 ıIiI。但是,在已经很拥挤的布局中浪费一个键将是毫无意义的浪费,而且会更加混乱,因此土耳其用户需要考虑在每种情况下哪个是合适的:“我正在输入一个用户名,它倾向于期望 ASCII字符,因此请在此处使用 iI 键”、“使用 i 字符创建密码时,我使用的是 iI 键还是 键?”

由于有无数这样的问题,即使 Unicode 包含土耳其语特定的 i 和 I 字符,键盘布局很可能会忽略它并继续使用常规的 ASCII/基本拉丁字符,因此新字符将完全未使用并没有实际意义。除非他们仍然可能偶尔出现在某些地方并造成混乱,所以他们没有走那条路是件好事。