我想在JRuby中通过一些Java库和成的JRuby再次传递一个二进制字符串作为byte[]
,在这里我想把它转换回一个字符串,但我不知道如何做到这一点没有字符串越来越乱了。转换JRuby的字符串的Java字节数组,然后再返回
具体而言,我正在编码一个Ruby散列作为BSON并将它传递给AMQP,但它是从byte[]
转换而来的,并不起作用。此代码
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字符串和byte[]
任何容易/更安全的方法是什么?