gpt4 book ai didi

jruby - 将 JRuby 字符串转换为 Java 字节数组,然后再返回

转载 作者:行者123 更新时间:2023-12-03 20:11:56 26 4
gpt4 key购买 nike

我试图在 JRuby 中传递一个二进制字符串作为 byte[]通过一些Java库并再次进入JRuby,我想将其转换回字符串,但我无法弄清楚如何在不弄乱字符串的情况下进行操作。

具体来说,我将 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[] ?

最佳答案

我自己找到了答案,原来是#to_java_bytesString ,以及一个辅助方法 .from_java_bytes可以毫无问题地处理转换:

blob = BSON.serialize({'test' => 123123123123}).to_s
p blob
p String.from_java_bytes(blob.to_java_bytes)

关于jruby - 将 JRuby 字符串转换为 Java 字节数组,然后再返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6106571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com