继续上一篇文章的主题,请注意ASCII 只有一种编码方法,该方法采用ASCII 值并将其转换为1 字节(8 位)二进制数。它们各有优点和缺点。
我们来看看一种叫做UTF-32的方法。 UTF-32 之所以称为UTF-32,是因为它将每个代码点值转换为4 个字节的二进制(32 位)。与ASCII 类似,当您将ASCII 值映射到字节时,如果以UTF-32 编码,该值将变为:
为了简单起见,我们将使用等效的十六进制而不是二进制。这种编码的优点是每个代码点具有相同的字节大小,无论其值是什么。例如,第一个代码点始终位于字节索引0,第二个代码点为4,第三个代码点为8,依此类推。缺点是有点浪费。
查看以ASCII 和UTF-32 编码的字符串“Hello FishC”。
UTF-32占用的空间比以前多了4倍,这是一个很大的缺点。问题是常见的小值和罕见的大值都占用4个字节。为解决这个问题而设计的解决方案称为UTF-8,它将每个代码点映射为1-4字节的代码。小值点映射为1个字节,可以节省大量空间。大的值占用2到4个字节,使用简单的罗马字符就更好了。 d 和z 具有相同的UTF-8 和ASCII 编码。由于Unicode 代码点和ASCII 值相同,因此非常小的代码点值的UTF-8 编码是向后兼容的,ASCII 的简单二进制表示也是如此。这意味着较旧的ASCII 程序可以读取简单的UTF-8 字符,而不知道它们是UTF-8。 UTF-8的缺点是码点大小和字节数不相等,因此需要索引查找。比较困难,并且对性能有一定的影响。关于这一部分,你需要了解很多知识。如果您想了解更多,我们的编辑将与您分享信息。如果您有兴趣,可以了解更多。添加微信接收信息。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。