24、ASCII、Unicode、UTF - 8 与汇编代码优化解析

ASCII、Unicode、UTF - 8 与汇编代码优化解析

1. ASCII、Unicode 与 UTF - 8

在计算机处理字符数据时,编码是一个核心问题。早期,ASCII 编码在字符表示中占据主导地位,它简单直接,并且在一定程度上与更高级的国际标准 Unicode 兼容。

1.1 Unicode

在 Unicode 出现之前,为字符串添加额外字符的解决方案是临时的,缺乏全局规划。不同的代码页(code page)被用于映射一组数字到屏幕上的显示字符,但这种方法存在局限性。例如,当需要混合使用不同代码页,或者不同组织使用不同代码页时,就会出现问题。如果要写一篇用日语汉字讨论梵语及其向希伯来语发展的论文,代码页的局限性就会凸显出来。

同时,扩展字符集也面临挑战,因为现有的大量文档和程序通常使用 ASCII 编码。将它们迁移到新的标准会很困难。

Unicode 联盟提出的解决方案是将字符列表与字符的表示方式分离。Unicode 为任何语言的每个字符分配一个 32 位的数字,这提供了超过 40 亿种可能性,几乎不会用完。当前的 Unicode 13.0 版本有 143,859 个字符,这比 8 位或 16 位能表示的字符数量多得多,但只是 32 位所能表示范围的一小部分。

Unicode 字符通常用 U + XXXX 表示,XXXX 是十六进制值,这被称为字符的代码点(code point)。对于大多数语言,大多数值位于前 16 位,因此 Unicode 代码点通常用 16 位十六进制值表示,但也可以使用长达 32 位的十六进制值。对于常见的 ASCII 字符,代码点和 ASCII 码相同。

1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值