深入理解字符串:从ASCII到Unicode的全面解析
1. 字符编码的演变
ASCII(美国信息交换标准代码)是字符编码的基础,它包含128个基本字符,这些字符至今仍是Unicode核心的一部分。然而,随着世界上众多语言的存在,仅靠ASCII无法满足需求,于是出现了扩展版本。扩展版本利用第8位为字符集增加了另外128个字符,这就是有时被称为ASCII - 8的编码。
不同的操作系统和标准采用了不同的字符集扩展方式。例如,Windows采用了一种称为代码页(code page)的字符集,其字符集取决于系统的区域设置和Windows版本。除了Windows代码页,还有许多基于类似分页方法的其他标准,这些标准成为了国际ISO标准的一部分。其中,ISO 8859标准最为重要,它定义了多个区域字符集,最常用的是拉丁字符集,即ISO 8859 - 1。需要注意的是,Windows 1252代码页与ISO 8859 - 1并不完全一致,Windows在128到150的区域添加了额外的字符,如欧元符号(€)和额外的引号等,这些扩展与Unicode代码点不兼容。
2. Unicode代码点和字形
在Unicode中,除了代码点的概念,还需要了解字形(grapheme)。有时,多个代码点可以用来表示一个字形(视觉字符),这通常不是单个字母,而是字母或字母与符号的组合。例如,拉丁字母“a”的代码点(#$0061)后面跟着重音符号的代码点(#$0300),应该显示为一个带重音的字符。在Object Pascal中,可以通过以下代码实现:
var
str: String;
begin
str
超级会员免费看
订阅专栏 解锁全文
22万+

被折叠的 条评论
为什么被折叠?



