消息队列篇--通信协议扩展篇--二进制编码(ASCII,UTF-8,UTF-16,Unicode等)
1、ASCII(American Standard Code for Information Interchange)
- 范围:0 到 127(共 128 个字符)
- 描述:ASCII 是一种早期的字符编码标准,主要用于表示英文字母、数字和一些常见的符号。每个字符占用 1 字节(8 位),但实际上只使用了低 7 位(最高位为 0)。
- 适用场景:仅适用于纯英文字符。
2、Unicode
- 范围:覆盖了几乎所有现代语言中的字符,包括符号、表情等。
- 描述:Unicode 是一个统一的字符集,定义了一个全球通用的字符编码标准。它为每个字符分配了一个唯一的编号(称为“码点”或“代码点”)。Unicode 不是具体的编码格式,而是一个字符集标准。
- 适用场景:适用于所有语言和符号。
3、UTF-8(UCS Transformation Format - 8-bit)
- 范围:支持 Unicode 中的所有字符。
- 描述:UTF-8 是一种变长编码格式,兼容 ASCII。对于单字节字符(如英文字符),UTF-8 使用 1 字节;对于多字节字符(如中文字符),UTF-8 可能使用 2 到 4 字节。
- 优点:
- 兼容 ASCII,即如果字符串只包含 ASCII 字符,则 UTF-8 和 ASCII 完全相同。
- 节省空间,特别是当文本主要由 ASCII 字符组成时。
- 适用场景:广泛用于网络传输和文件存储,尤其是在需要兼容 ASCII 的场景中。
4、UTF-16(UCS Transformation Format - 16-bit)
- 范围:支持 Unicode 中的所有字符。
- 描述:UTF-16 是另一种变长编码格式,但它通常使用 2 字节来表示字符(基本多文种平面 BMP 中的字符)。对于超出 BMP 的字符(如某些表情符号),UTF-16 需要使用 4 字节(称为代理对)。
- 优点:对于大多数常用字符(如中文字符),UTF-16 使用固定长度(2 字节),便于处理。
- 缺点:对于非 BMP 字符,UTF-16 需要额外的处理逻辑。
- 适用场景:在某些编程语言(如 Java)中,内部字符串表示使用 UTF-16。
乘风破浪!Dare to Be!!!