我想在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[]
任何容易/更安全的方法是什麼?