ruby 1.8中String #setbyte和String #getbyte的等价物

时间:2014-12-02 14:03:28

标签: ruby ruby-1.9 ruby-1.8 aerospike

2 个答案:

答案 0 :(得分:1)

IIRC,Ruby 1.8字符串,无论出于什么意图和目的,1.9都将被视为ASCII-8BIT。因此,String#[]String#[]=是评论中已经建议的方式。 (1.9中的相同函数将在某个偏移量而不是字节处定位潜在的多字节字符。)

有关Ruby M17N的更全面讨论以及Ruby 1.9中字符串的更改,请参阅:

答案 1 :(得分:1)

而不是依赖于特定版本的Ruby如何处理字节/字符/字符串,而是使用packunpack方法。它们始终可用且行为一致。

为了您的使用,unpack将数据放入数组中,然后您可以使用常规数组切片来更改有问题的字节,然后将pack一切返回到字节流中。