1.ASCII码表
ASCII 是“American Standard Code for Information Interchange”的缩写,翻译过来是“美国信息交换标准代码”。ASCII 的标准版本于 1967 年第一次发布,最后一次更新则是在 1986 年,迄今为止共收录了 128 个字符,其中有 33 个控制字符(具有某些特殊功能但是无法显示的字符)和 95 个可显示字符。包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 1234567890)、标点符号(,.!等)、特殊符号(@#$%^&等)以及一些具有控制功能的字符
2.Unicode
Unicode是一个标准字符集,旨在为所有的语言和符号提供一个统一的编码方案。它定义了每个字符的唯一码点,这些码点可以用来表示字符在计算机系统中的位置。
Unicode为每个字符分配了一个唯一的码点,这个码点通常以"U+"开头,后面跟着字符的十六进制表示。例如,拉丁字母"A"的Unicode码点是U+0041。
Unicode编码空间非常庞大,目前已经定义了超过130万个码点,覆盖了几乎所有已知的语言和符号。它包含了各种文字系统,如拉丁字母、希腊字母、西里尔字母、中文、日文、韩文等。
Unicode的实现方式有多种,如UTF-8、UTF-16和UTF-32。这些编码方式将Unicode字符映射为不同长度的二进制序列,以适应不同的应用需求。
通过使用Unicode,我们可以在计算机系统中处理和表示全球范围内的文本数据,实现跨语言和跨文化的交流与处理
3、UTF-8
UTF-8是一种使用变长字节表示Unicode字符的编码方式,它可以表示Unicode标准中的任何字符。UTF-8编码的一个优点是它可以向后兼容ASCII编码,因此在ASCII字符范围内,UTF-8编码与ASCII编码是一致的。
UTF-8 的编码规则:
对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码点。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码那个年代的文档用 UTF-8 编码打开完全没有问题。
对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设为 1,第 N + 1 位设为 0,剩余的 N - 1 个字节的前两位都设位 10,剩下的二进制位则使用这个字符的 Unicode 码点来填充。
UTF-8使用1~4字节为每个字符编码:
·一个US-ASCIl字符只需1字节编码(Unicode范围由U+0000~U+007F)。
·带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码(Unicode范围由U+0080~U+07FF)。
·其他语言的字符(包括中日韩文字、东南亚文字、中东文字等)包含了大部分常用字,使用3字节编码。
·其他极少使用的语言字符使用4字节编码。
具体的表现形式为:
0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;
110xxxxx 10xxxxxx:双字节编码形式(第一个字节有两个连续的 1);
1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式(第一个字节有三个连续的 1);
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式(第一个字节有四个连续的 1)。