字符集编码(四):UTF如何应用于不同语言文本?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5203个文字,预计阅读时间需要21分钟。
在《字符集编码(中):Unicode》一文中,我们探讨了Unicode标准及其三种实现形式:UTF-16、UTF-8和UTF-32。本文将具体探讨这三种UTF编码的实现方式。
在前面文章《字符集编码(中):Unicode》中我们聊了 Unicode 标准并提到其有三种实现形式:UTF-16、UTF-8 和 UTF-32,本篇我们就具体聊聊这三种 UTF 是怎么实现的。在前面文章《字符集编码(中):Unicode》中我们聊了 Unicode 标准并提到其有三种实现形式:UTF-16、UTF-8 和 UTF-32,本篇我们就具体聊聊这三种 UTF 是怎么实现的。
UTF 是 Unicode Translation Format 的缩写,翻译过来是 Unicode 转换格式,对应字符编码模型中的第三、四层(字符编码形式和字符编码方案),负责将 Unicode 码点以特定的码元存储在计算机中。
UTF-X 中的 X 表示码元的宽度(比特数),如 UTF-16 表示使用 16 位码元存储数据。
Unicode 最初是打算使用 16 位定长编码形式的,在这种情况下 Unicode 标量值(也就是码点)和其在计算机中的码元表示是一致的。
比如汉字“啊”的 Unicode 标量值(码点)是 554A,其码元表示也是 55 4A(二进制是 01010101 01001010)。
这种表示方式的优点是简单快速,不需要任何标志位,也不需要做任何转换,所以在 Unicode 设计之初选用双字节定长编码。
不过这种方式只能表示 2^16 也就是 65536 个字符,但 Unicode 联盟很快发现两个字节无法容纳世界上所有的字符,于是很快将编码空间扩展到 0~10FFFF,显然原先的表示方式不再可行了。
于是他们对原先的 UTF-16 做了改进。
改进后的 UTF-16 采用变长编码形式,使用一个或两个码元来表示字符编码。
本文共计5203个文字,预计阅读时间需要21分钟。
在《字符集编码(中):Unicode》一文中,我们探讨了Unicode标准及其三种实现形式:UTF-16、UTF-8和UTF-32。本文将具体探讨这三种UTF编码的实现方式。
在前面文章《字符集编码(中):Unicode》中我们聊了 Unicode 标准并提到其有三种实现形式:UTF-16、UTF-8 和 UTF-32,本篇我们就具体聊聊这三种 UTF 是怎么实现的。在前面文章《字符集编码(中):Unicode》中我们聊了 Unicode 标准并提到其有三种实现形式:UTF-16、UTF-8 和 UTF-32,本篇我们就具体聊聊这三种 UTF 是怎么实现的。
UTF 是 Unicode Translation Format 的缩写,翻译过来是 Unicode 转换格式,对应字符编码模型中的第三、四层(字符编码形式和字符编码方案),负责将 Unicode 码点以特定的码元存储在计算机中。
UTF-X 中的 X 表示码元的宽度(比特数),如 UTF-16 表示使用 16 位码元存储数据。
Unicode 最初是打算使用 16 位定长编码形式的,在这种情况下 Unicode 标量值(也就是码点)和其在计算机中的码元表示是一致的。
比如汉字“啊”的 Unicode 标量值(码点)是 554A,其码元表示也是 55 4A(二进制是 01010101 01001010)。
这种表示方式的优点是简单快速,不需要任何标志位,也不需要做任何转换,所以在 Unicode 设计之初选用双字节定长编码。
不过这种方式只能表示 2^16 也就是 65536 个字符,但 Unicode 联盟很快发现两个字节无法容纳世界上所有的字符,于是很快将编码空间扩展到 0~10FFFF,显然原先的表示方式不再可行了。
于是他们对原先的 UTF-16 做了改进。
改进后的 UTF-16 采用变长编码形式,使用一个或两个码元来表示字符编码。

