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

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

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

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

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

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

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