6.4 字符串及编码
正如我们所看到的,Object Pascal中的字符串类型映射到Unicode UTF-16格式,每个元素2字节,并管理BMP(基本多语言平面)之外码点的代理对。
但是,在许多情况下,您需要保存到文件、从文件加载、通过套接字连接传输或从使用不同表示形式(如ANSI或UTF-8)的连接接收文本数据。
要在不同格式(或编码)之间转换文件和内存数据,Object Pascal RTL 有一个名为 TEncoding 类,与它几个继承类一起定义在 System.SysUtils 单元中。
注解: Object Pascal RTL 中还有其他几个便利类,可以用来读写文本格式的数据。例如,TStreamReader 和 TStreamWriter 类支持任何编码的文本文件。这些类将在第 18 章中介绍。
虽然我还没有介绍类和继承,但这组编码类非常易于使用,因为每种编码都有一个全局对象可供使用。
换句话说,在 TEncoding 类中,每个编码类的对象都可以作为类属性使用:
type
TEncoding = class
... public
class property ASCII: TEncoding read GetASCII;
class property BigEndianUnicode: TEncoding read GetBigEndianUnicode;
class property Default: TEncoding read GetDefault;
class property Unicode: T