Julia Unicode 字符

                     

贡献者: 待更新

   本文授权转载自郝林的 《Julia 编程基础》。原文链接:第 6 章 字符和字符串

1. 第 6 章 字符和字符串

6.1 Unicode 字符

   在讲 Unicode 字符之前,我们先来简要介绍一下 ASCII 编码。

   ASCII 是 American Standard Code for Information Interchange 的缩写,可以翻译为美国信息交换标准代码。它是由美国国家标准学会(American National Standard Institute, 简称 ANSI)制定的标准的单字节字符编码方案,主要用途是基于文本的数据交换。这个方案起始于上个世纪 50 年代的后期,并在 1967 年定案。它最初是美国的国家标准,是不同计算机在相互通信时共同遵守的西文字符编码标准。ASCII 编码支持的所有字符的集合被称为 ASCII 编码集。

   ASCII 编码使用 1 个字节来表示 1 个字符。其中的 7 位二进制数字用于表示大写和小写的英文字母、09 的数字、各种英文标点符号,以及一些不可打印字符和控制字符。而字节的最高位则用于奇偶校验。这使得 ASCII 编码集中只能容纳 128 个字符。

   我们之前提到的 Unicode 字符实际上指的是 Unicode 编码标准所支持的字符。Unicode 是一个针对书面字符和文本的通用字符编码标准。它定义了多语言文本数据在国际间交换的统一方式,并为全球化软件创建了基础。Unicode 编码标准以 ASCII 编码集作为出发点,并突破了 ASCII 只能对拉丁字母进行编码的限制。它提供了可以对世界上的所有语言中的所有文字进行编码的能力,其支持的字符已超过百万。此外,它还支持所有已知的转义序列和控制代码。

   在计算机系统内部,抽象的字符被编码为数字。用于代表抽象字符的整数范围被称为代码空间(code space)。代码空间中的每一个特定整数都被称为代码点(code point)。当一个抽象字符被映射到(或者说被分配给)一个代码点时,这个代码点就可以被看成一个已编码的字符。

   在 Unicode 编码标准中,代码空间由从 010FFFF 的十六进制整数组成。这就意味着,有 1114112 个代码点可以用于表示抽象字符。Unicode 编码标准的惯用法是使用十六进制形式来表示代码点的数值,并使用 U+ 作为前缀。比如,英文字母字符 'a' 的 Unicode 代码点就是 U+0061。并且,一个受到支持的字符能且仅能由一个对应的 Unicode 代码点表示。

   我们已经知道,在计算机系统中,整数可以由固定大小的代码单元(code unit)来表示。比如,8 个比特(也就是 1 个字节)、16 个比特或 32 个比特的代码单元,等等。在 Unicode 编码标准的模型中,编码格式用于确定怎样将代码空间中的每一个整数(或者说代码点)都表示成包含若干个代码单元的序列。Unicode 编码标准中存在多种编码格式。其中有一种编码格式叫做 UTF-8。UTF 是 Unicode Transformation Format 的缩写。

   UTF-8 编码格式以单个字节为 1 个代码单元,并且完全兼容 ASCII 编码。换句话说,对于这种编码格式,Unicode 代码点 U+000U+007F 的编码即为 0x000x7f,并且它们所代表的含义与 ASCII 编码中的完全一致。另外,UTF-8 是一种宽度可变的编码格式。它会根据字符的不同,用 1 至 4 个代码单元来编码一个字符。比如,对于中文、日文和韩文中的一个字符,它会使用 3 个代码单元来表示。也就是说,对于这些 Unicode 字符,UTF-8 会把它们转换成宽度为 3 个字节的二进制数。至于它是怎样转换的,我们就不在此讨论了。

   关于 Unicode 编码标准和 UTF-8 编码格式的更多知识,你可以参看 Unicode 官方网站中提供的文档。

   总之,Unicode 编码标准帮助我们屏蔽掉了各种字符的复杂性,并且已被普遍认为是解决这一问题的终极标准。而 UTF-8 则是 Julia 所使用的编码格式。Julia 通过此编码格式支持所有的 Unicode 字符。

   对于字符和字符串,Julia 通常都会采用 UTF-8 编码格式将它们转换成二进制数并进行存储。


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利