需要哪些中文语言环境才能避免字符丢失或不匹配?

Phi*_*ipp 6 character-encoding unicode locale language

Arch Linux 在 中列出了以下不同的中文语言环境/etc/locale.gen

#zh_CN.GB18030 GB18030
#zh_CN.GBK GBK
#zh_CN.UTF-8 UTF-8
#zh_CN GB2312
#zh_HK.UTF-8 UTF-8
#zh_HK BIG5-HKSCS
#zh_SG.UTF-8 UTF-8
#zh_SG.GBK GBK
#zh_SG GB2312
#zh_TW.EUC-TW EUC-TW
#zh_TW.UTF-8 UTF-8
#zh_TW BIG5
Run Code Online (Sandbox Code Playgroud)

这些区域设置是特定于区域的(代表中国大陆、香港、新加坡和台湾,甚至不包括日本和韩国),但每个区域仍然有多个区域设置。

由于汉字的非系统性,又由于分布范围如此之大,将汉字编入UTF的过程并非一帆风顺,因地域而异。同一个字有许多变体,也有政治和文化因素在起作用,甚至在一个地区,人们可能更喜欢使用某些字符变体而不是官方的,而不仅仅是手写。

一些技术问题在这里用通俗的语言解释。

我的理解是,繁体中文和简体中文(例如?)中相同的字符以及同一“简体”或“繁体”类别中相同字符的不同变体获得相同的代码点,以及字符变体使用不同的字体实现。

相比之下,足够不同的版本(例如,不同的简体和繁体字符,如 ? 和 ?)获得不同的代码点,因此,同一字体可以包含多个版本的相同字符。

这种交织(简体、繁体和字符变体都包含在 UTF 中)导致了一个问题,为什么所有这些不同的语言环境对于中文都是必要的,以及作为用户,是否有必要安装它们。


在安装了足够字体的系统上(系统上每个要显示的字符都有一个字形):

我真的需要这些语言环境中的哪些才能正确显示大多数字符?

哪些中文编码已经包含在另一种编码中(例如,UTF 是否与 Big5 或其他中文编码向后兼容,如与 ASCII 兼容)?

小智 5

我将使用西方的例子来避免中国政治并避免我缺乏中文知识。

\n

我将使用一些字符,如果您缺少覆盖这些字符的字体,这些字符可能无法在您的计算机中正确呈现。这不是 Unicode 或本网站 HTML 的限制,而是计算机字体的限制[a](请参阅本文的结尾)。

\n

缺少代码点

\n

您的描述:

\n
\n

这些区域设置是特定于区域的(代表中国大陆、香港、新加坡和台湾,这甚至不包括日本和韩国),但每个区域仍然有多个区域设置。

\n
\n

是的,但性格并不重要。所有相同的字符[b]在所有国家/地区均可用。

\n

[b]嗯,从技术上讲,所有相同的代码点在每种编码中都可用:UTF(全部:8、16、32 等)、GBK、GB2312、BIG5-HKSCS、EUC-TWUTF-8 和 BIG5。这类似于代码页 437代码页 862之间的一些差异(随机选择两个)。两者共享 0-127 的所有 ASCII 范围,并且各自尝试涵盖一种特定语言。代码页 437 是原始 IBM PC(个人计算机)的字符集,并尝试覆盖拉丁语的通用使用(不擅长任何语言)。代码页 862 是 DOS 下用于希伯来语的代码页。因此,所有 GB2312 对相同的代码点使用相同的数字,并且这些相同的代码点适用于任何国家/地区。

\n

了解所有代码点(我的意思是所有)都可以在 UTF(任何版本)中使用。

\n

拥有多个国家/地区的原因是为了处理日期格式、工作日名称、货币名称和所有其他元素。不是人物。

\n

这涵盖了标题的第一部分:

\n
\n

需要哪些中文语言环境才能避免遗漏...

\n
\n

选择您喜欢的任何使用 UTF(现在可能是 utf-8)的国家(甚至是美国、英国、法国等) ,并且忘记丢失的字符,好吧,再次,代码点。

\n
\n

图像不匹配

\n

注意,我没有使用字符这个词,而是图像,原因很长,解释一下:

\n

字素

\n

如上所述,代码点与用于表达声音或想法的图像不同。人类语言远比这种简单的描述复杂。为了对字素是什么进行有效的描述,我们可以引用维基百科(强调我的):

\n
\n

字素在语言学中,字素是任何给定语言的书写系统的最小单位。1单个字素本身可能具有也可能不具有意义,并且可能对应也可能不对应于口语的单个音素。字素包括字母、印刷连字、汉字、数字、标点符号和其他单独的符号。字素也可以被解释为独立表示语言材料的一部分的图形符号。

\n
\n

所以:有点类似于说:图形符号

\n

但该符号可能与声音(在西方文字中)不是一对一的关系,解释如下:

\n

汉堡这个词\n汉堡一词

\n

一种声音适合两个人 o

\n

它也不像这个词的形象那样与单一的观念(意义)相连spoon,即:Spoon可能与几个观念相连。

\n

语素

\n

中文甚至更加丰富(按字符数计算):

\n

...中文书写系统由无限的字符或语标组成,代表意义或语素(即单词)的单位。与其他语言一样,中文也有数千个单词。因此,中文书写系统需要数千个字符来表示其每个独特的语素。

\n

字形

\n

每个语标(代表一个意义单位)可能有几个图像。

\n

小写字母“a”

\n

代表小写字母“a”的各种字形;它们是字素“a”的异位字母

\n

因此,标题第二部分的答案本质上比简单的“字符编号列表”(代码点)更复杂。

\n

看似简单的“R”,可能是拉丁字符或数学符号( 、 、 、 和 只是数学符号的一些示例),甚至是重音符号(\xc5\x94、\xc5\x98、\xc8\x90 、\xc8\x92 或 \xc9\x8c 等)。所以,实际上,并不是一个简单的“R”,而是其中的一些。

\n

字体

\n

[a]为了能够呈现所有这些不同的代码点,您需要字体

\n

字体有一个概念,叫做覆盖率包含多少个代码点

\n

一个极端(非常大的文件)示例是Unifont覆盖BMP 中的所有可见)代码点。

\n

例如, (U+1110C CHAKMA LETTER CAA) Chakma Alphabet不是您计划看到的字母,但它包含在Unifont中。

\n

还有其他具有出色覆盖范围的开放(免费)字体,例如Code2000

\n

还有能托

\n

维基百科网页中提供了不同中文字体的示例

\n

在此输入图像描述

\n