JRuby'de bir ikili dizeyi bir Java kütüphanesi aracılığıyla ve tekrar JRuby içinde bir dizeye dönüştürmek istediğim bir byte[]
olarak geçmeye çalışıyorum. sicim bozukluğu olmadan nasıl yapılacağını anlayamıyorum.JRuby dizgisini Java bayt dizisine dönüştürme ve tekrar geri dönme
Özellikle Ruby hash'ını BSON olarak kodlayıp AMQP üzerinden geçiriyorum, ancak bu, çalışmayan byte[]
arası ve bu dönüşümden geliyor. Bu kod
import org.jruby.RubyString
blob = BSON.serialize({'test' => 123123123123}).to_s
p blob
p RubyString.bytes_to_string(RubyString.string_to_bytes(blob))
çıkışları
"\x13\x00\x00\x00\x12test\x00\xB3\xC3\xB5\xAA\x1C\x00\x00\x00\x00"
"\x13\x00\x00\x00\x12test\x00\xC2\xB3\xC3\x83\xC2\xB5\xC2\xAA\x1C\x00\x00\x00\x00"
Ben de
java.lang.String.new(blob.to_java.bytes).to_s
denedi ama aynı yanlış, dizge çıktılar.
Bir JRuby dizgisine ve byte[]
ürününe dönüştürmekten daha kolay/güvenli bir yol var mı?