试图让aerospike ruby客户端在1.8以下工作
ruby 1.8中这些调用的等价物是什么?
https://github.com/aerospike/aerospike-client-ruby/blob/master/lib/aerospike/utils/buffer.rb#L65
https://github.com/aerospike/aerospike-client-ruby/blob/master/lib/aerospike/utils/buffer.rb#L95
答案 0 :(得分:1)
IIRC,Ruby 1.8字符串,无论出于什么意图和目的,1.9都将被视为ASCII-8BIT。因此,String#[]
和String#[]=
是评论中已经建议的方式。 (1.9中的相同函数将在某个偏移量而不是字节处定位潜在的多字节字符。)
有关Ruby M17N的更全面讨论以及Ruby 1.9中字符串的更改,请参阅:
答案 1 :(得分:1)
而不是依赖于特定版本的Ruby如何处理字节/字符/字符串,而是使用pack
和unpack
方法。它们始终可用且行为一致。
为了您的使用,unpack
将数据放入数组中,然后您可以使用常规数组切片来更改有问题的字节,然后将pack
一切返回到字节流中。