本文以REBOL为例进行说明。如下图所示:
图1
大多数在ASCII之后出现的编码都会以兼容于ASCII为目标,毕竟ASCII在英文世界是主流。在兼容于ASCII的情况下,能够使用Unicode所有的文字,就要使用变动长度的编码UTF-8。
UTF-8编码遇到ASCII中的字符,会采用一个字节编码;遇到某些字符(包括欧洲一些国家的语言)采用两个字节编码;遇到某些文字(尤其中日韩文字)采用三个字节编码,甚至某些字符采用四个字节编码。
图2
将内部格式转化为外部格式,成为编码(encoding)。将外部格式转化为内部格式,称为解码(decoding)。我们可以采用to-binary函数把文字编码成UTF-8,采用to-string把UTF-8解码成内部的UTF-16BE。
图3
(注意:ASCII码兼容于UTF-8)