如何将带有十六进制字符的字符串存储到环境变量中,然后在ruby中检索?

时间:2018-01-08 12:13:14

标签: ruby-on-rails ruby string environment-variables

如何将具有十六进制值的字符串保存到环境变量中,然后在ruby中检索它?

目前,当我使用"\\x12\\x33"检索它时,它将返回斜杠转义。所以它检索像"\x12\x33"。我怎样才能这样做,以便当从ruby中恢复环境变量时,它返回相同的完整字符串s = "\x12\x33"

假设我有一个十六进制字符的字符串,例如

apt-get install protobuf-compiler python-pil python-lxml

我感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:1)

TEST='\x34\x33' ruby -e "
  puts ENV['TEST'].split('\\x')[1..-1].map(&:to_i).map(&:chr)"
#⇒ "
#  !

答案 1 :(得分:0)

好吧我通过首先将二进制文件写入文件然后读取它来解决这个问题。

书写

data = "\x12\x33"

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

阅读

file = File.open("data.bz2", "rb")
contents = file.read
print contents