ASCII 由电报码发展而来,第一版标准发布于1963年,最后一次更新则是在1986年,至今为止共128个字符
- 其中
33个字符为不可显示的控制字符,主要用于控制设备或调整文本格式; - 在33个字符之外是
95个可显示字符:
包含26个英文大小写字母、10个阿拉伯数字以及包含空格在内的33个标点与特殊符号
EASCII(Extended ASCII)是ASCII码的扩展版本,其将ASCII码由7位扩充为8位,由128个字符扩展为256个字符,因此EASCII可以部分支持西欧语言。
转义字符并非ASCII控制字符的某种编码方式,而是一种约定俗成的写法,当向计算机输入转义字符时(如\r\n),其将自动将转移字符替换为CRLF控制字符,每个控制字符占一个字节
Unicode 编码是一个二进制字符集,其字符占用2~3个字节。目前分为17个组进行编排,每个组称为一个平面,每个平面拥有65536个编码点,且当前只使用了少数平面。
因此,Unicode有足够的编码空间,可以将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,是名副其实的万国码。
-
大写英文字母A,其对应的ASCII二进制编码为8位 ( 01000001 ),也就是说表示ASCII字符需1个字节 ;
-
汉字
夏的 Unicode 十六进制标识为590F,二进制表示有16位(0101100100001111),也就是说采用Unicode表示这个字符至少需要2个字节; -
而对于Unicode编码第14~16平面的字符,可能需要3个字节表示。
-
若所有的字符均按3个字节进行表示:由于计算机存储空间有限,将造成不小的空间浪费; -
若按1~3字节对所有字符进行表示:计算机该如何区分ASCII 与 Unicode(计算机如何知道是一个字节表示一个字符,还是三个字节表示一个字符)?
这种情况下UTF-8应运而生,UTF-8 最大的特点是一种可变长的编码方式,其使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的英文全称是(8-bit Unicode Transformation Format),其为 Unicode 的实现方式之一
- 对于单字节的符号,字节的第一位设为
0,后面7位为这个符号的 Unicode 码。
因此,对于英语字母UTF-8 编码和 ASCII 码是相同的。 - 对于
n字节的符号(n > 1):
第一个字节的前n位都设为1,第n + 1位设为0;
后面字节的前两位一律设为10;
剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。