整数を指定すると、たとえば、x=20
これをエスケープされた 8 進文字を含む文字列に変換したいと思います。つまり...
x=20
# y = ... Some magic
p y # => "\024"
私が得ることができた最も近いものは、以下を使用することです:
x.to_s(8) # => "24"
ただし、この文字列をエスケープされた 8 進文字に変換する方法に完全に困惑しています。インターネット、アイデアはありますか?
整数を指定すると、たとえば、x=20
これをエスケープされた 8 進文字を含む文字列に変換したいと思います。つまり...
x=20
# y = ... Some magic
p y # => "\024"
私が得ることができた最も近いものは、以下を使用することです:
x.to_s(8) # => "24"
ただし、この文字列をエスケープされた 8 進文字に変換する方法に完全に困惑しています。インターネット、アイデアはありますか?
Kernel#sprintf
数値をフォーマットするために使用するだけです。
このような
x = 20
y = sprintf('\%03o', x)
puts y
出力
\024
アップデート
たぶん私はあなたを誤解しました。指定されたコード ポイントの文字が必要な場合は、 を使用しますInteger#chr
。
このような
x = 20
y = x.chr
p y
出力
"\x14"
使用できますArray#pack
:
[20].pack("C") #=> "\x14"