Преобразование строки JRuby в массив байтов Java и обратно

Я пытаюсь передать двоичную строку в JRuby как байт [] через какую-то библиотеку Java и снова в JRuby, где я хочу преобразовать его обратно в строку, но я не могу понять, как это сделать, чтобы строка не испортилась.

В частности, я кодирую хэш Ruby как BSON и передаю его через AMQP, но это преобразование в и из байта [] , который не работает. Этот код

import org.jruby.RubyString
blob = BSON.serialize({'test' => 123123123123}).to_s
p blob
p RubyString.bytes_to_string(RubyString.string_to_bytes(blob))

выводит

"\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"

Я также пробовал

java.lang.String.new(blob.to_java.bytes).to_s

, но он выводит ту же неправильную строку.

Есть ли более простой / безопасный способ преобразования в строку JRuby и байт и обратно. ] ?

15
задан Theo 24 May 2011 в 06:31
поделиться