在 Rebol 2 中,可以to char!
用来产生有效的单字节,您可以在二进制操作中使用,例如 append:
>> buffer: #{DECAFBAD}
>> data: #{FFAE}
>> append buffer (to char! (first data))
== #{DECAFBADFF}
似乎很明智。但是在 Rebol 3 中,你会得到一些不同的东西:
>> append buffer (to char! (first data))
== #{DECAFBADC3BF}
那是因为它没有将单个字符建模为单个字节(由于 Unicode)。所以 (255) 的整数值first data
被翻译成一个两字节的序列:
>> to char! 255
== #"ÿ"
>> to binary! (to char! 255)
== #{C3BF}
鉴于 CHAR!不再等同于 Rebol 3 中的一个字节,也没有 BYTE!添加了数据类型(使得 BINARY! 可以被视为一系列这些 BYTE!就像 STRING!是一系列 CHAR!),对于这种情况该怎么办?