gpt4 book ai didi

Ruby:如何将字符串转换为二进制并将其写入文件

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:55 26 4
gpt4 key购买 nike

数据是UTF-8字符串:

data = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'

我已经尝试了 File.open("data.bz2", "wb").write(data.unpack('a*')) 各种解包变体没有成功。我只是获取文件中的字符串,而不是字符串中的 UTF-8 编码二进制数据。

最佳答案

data = "BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08"

File.open("data.bz2", "wb") do |f|
f.write(data)
end

write 接受一个字符串作为参数,你有一个字符串。无需先解压该字符串。您使用 Array#pack 来转换一个数组,例如数字转换为二进制字符串,然后您可以将其写入文件。如果你已经有一个字符串,你不需要打包。从文件(或任何地方)读取二进制字符串后,您可以使用 unpack 将其转换回数组。

另请注意,当使用 File.open 时没有 block 并且没有像 File.open(arguments).some_method 那样保存 File 对象,您正在泄漏文件处理。

关于Ruby:如何将字符串转换为二进制并将其写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600702/

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