什么是字符编码系统?
众所周知,计算机不理解英文字母、除 0 和 1 以外的数字或文字符号。我们使用编码来转换这些。因此,编码是将一系列字符(即字母、数字、标点和符号)转换为特殊或唯一格式以便在计算机中传输或存储的方法或过程。数据在计算机中使用 ASCII、UTF8、UTF32、ISCII 和 Unicode 编码方案表示。所有类型的数据,包括数字、文本、照片、音频和视频文件,都可以由计算机处理。例如,65 表示为 A,因为标准编码方案为所有字符、符号、数字分配了一些唯一代码。下面介绍一些常用的编码方案:
1. ASCII: ASCII被称为 美国标准信息交换码。 X3 小组是 ASA 的一部分,于 1963 年首次制作并发布了 ASCII。(美国标准协会)。 ASCII 标准于 1963 年作为 ASA X3.4-1963 首次发布,并在 1967 年至 1986 年间进行了十次修订。ASCII 是一种 8 位代码标准,将 256 个插槽分为字母、数字和其他字符。 ASCII 十进制 (Dec) 数是使用二进制构建的,它是通用计算机语言。小写“h”字符(char)的十进制值为104,二进制为“01101000”。
ASCII 表分为三个部分。
- 不可打印,系统代码介于 0 到 31 之间。
- 较低的 ASCII,介于 32 和 127 之间。
- 更高的 ASCII,介于 128 和 255 之间。
字符的 ASCII 表:
Letter | ASCII Code | Letter | ASCII Code |
---|---|---|---|
a | 97 | A | 65 |
b | 98 | B | 66 |
c | 99 | C | 67 |
d | 100 | D | 68 |
e | 101 | E | 69 |
f | 102 | F | 70 |
g | 103 | G | 71 |
h | 104 | H | 72 |
i | 105 | I | 73 |
j | 106 | J | 74 |
k | 107 | K | 75 |
l | 108 | L | 76 |
m | 109 | M | 77 |
n | 110 | N | 78 |
o | 111 | O | 79 |
p | 112 | P | 80 |
q | 113 | Q | 81 |
r | 114 | R | 82 |
s | 115 | S | 83 |
t | 116 | T | 84 |
u | 117 | U | 85 |
v | 118 | V | 86 |
w | 119 | W | 87 |
x | 120 | X | 88 |
y | 121 | Y | 89 |
z | 122 | Z | 90 |
2、ISCII: ISCII(Indian Script Code for Information Interchange)是Indian Script Code for Information Interchange的缩写。 ISCII 是一种编码方法,可用于对各种印度语言进行编码,包括书面和口头。为了简化跨多个书写系统的音译,ISCII 采用了单一编码机制。
ISCII 由印度标准局 (BIS) 于 1991 年成立。它的字符数约为 256,并采用 8 位编码技术。从 0 到 127,前 128 个字符与 ASCII 中的相同。以下字符,范围从 128 到 255,代表印度文字中的字符。
优点包括:
- 绝大多数印度语言都在其中体现。
- 字符集简单明了。
- 可以轻松地在语言之间进行音译。
缺点包括:
- 需要带有 ISPII字符键的特殊键盘。
- 因为 Unicode 是后来创建的,而 Unicode 包含 ISCII字符,所以 ISCII 已经过时了。ISCII(Indian Script Code for Information Interchange)是 Indian Script Code for Information Interchange。
- ISCII 是一种编码方法,可以对各种印度语言进行编码,包括书面和口头。为了简化跨多个书写系统的音译,ISCII 采用了单一编码机制。
3. Unicode: Unicode字符在计算机系统中被翻译并存储为处理器可以处理的数字(位序列)。在 Unicode 中,代码页是一种将一组位转换为字符表示的编码系统。在 Unicode 之前,数百种不同的编码技术为地球上的每个字母或字符分配了一个数字。其中许多方法使用的代码页只有 256 个字符,每个都需要 8 位存储空间。
- Unicode 支持为多个平台、语言和国家/地区创建单个软件产品或网站(无需重新设计),与旧字符集相比可显着节省成本。
- 可以在各种系统中使用 Unicode 数据而不会产生数据损坏。
- Unicode 是一种通用编码技术,可用于对任何语言或字母进行编码,而与设备、操作系统或软件无关。
- Unicode 是一种字符编码标准,允许您在多个字符编码系统之间进行转换。因为 Unicode 是所有其他主要字符编码系统的超集,所以您可以从一种编码方案转换为 Unicode,然后从 Unicode 转换为另一种编码方案。
- 最广泛使用的编码是Unicode。
- 定义通用字符集字符编码的 ISO/IEC 10646 的适用版本与 Unicode 标准版本完全兼容和同步。或者我们可以说它包含 96,447 个字符代码,足以解码世界上存在的任何字符符号。
4. UTF-8:它是一种宽度可变的字符编码,用于电子通信。使用一到四个一字节(8 位)代码单元,它可以编码所有 1,112,064[nb 1] 个有效的 Unicode字符代码点。具有较低数值的代码点使用较少的字节进行编码,因为它们出现的频率更高。创建时,创建者确保此编码方案与 ASCII 兼容,并且与 ASCII 一对一的前 128 个 Unicode字符使用与 ASCII 具有相同二进制值的单个字节进行编码,并确保 ASCII 文本也是有效的 UTF-8 编码的 Unicode。
将符号转换为二进制:Character ASCII Byte A 65 1000001 a 97 1100001 B 66 1000010 b 98 1100010 Z 90 1011010 0 48 110000 9 57 111001 ! 33 100001 ? 63 111111
5. UTF-32: UTF-32 被称为 32 位 Unicode 转换格式。它是一种固定长度编码,使用每个代码 32 位对 Unicode 代码点进行编码。它每个字符使用 4 个字节,我们可以简单地通过计算字节数来计算 UTF-32字符串中的字符数。使用 UTF-32 的主要优点是可以直接索引 Unicode 码位(虽然一般的字母,例如“字素簇”或某些表情符号,不能直接索引,因此确定字符串的显示宽度比较复杂) .恒定时间操作是在代码点序列中找到第 N 个代码点。另一方面,可变长度代码需要顺序访问以定位一行中的第 N 个代码点。因此,UTF-32 是 ASCII 代码的直接替代品,它使用加一的数字检查字符串中的每个问题。