由于Rebol 3支持unicode,并且UTF16在需要时在内部使用(如果它只有ASCII字符,它在ASCII中),它应该像从二进制文件中复制内存内容并设置REBVAL结构。但是,我找到的唯一方法似乎是迭代二进制文件并单独转换每个字符。
同样的问题适用于以UTF16编码字符串。
答案 0 :(得分:3)
好的,似乎并不是一种简单的方法。所以我刚刚为此添加了两个编解码器UTF-16LE / BE。请参阅此提交:https://github.com/zsx/r3/commit/630945070eaa4ae4310f53d9dbf34c30db712a21
通过此更改,您可以执行以下操作:
>> b: encode 'utf-16le "hello"
== #{680065006C006C006F00}
>> s: decode 'utf-16le b
== "hello"
>> b: encode 'utf-16be "hello"
== #{00680065006C006C006F}
>> s: decode 'utf-16be b
== "hello"