解码UTF16二进制文件的最有效方法是什么?

时间:2014-12-03 21:26:11

标签: unicode utf-16 rebol rebol3

由于Rebol 3支持unicode,并且UTF16在需要时在内部使用(如果它只有ASCII字符,它在ASCII中),它应该像从二进制文件中复制内存内容并设置REBVAL结构。但是,我找到的唯一方法似乎是迭代二进制文件并单独转换每个字符。

同样的问题适用于以UTF16编码字符串。

1 个答案:

答案 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"