1

整数を指定すると、たとえば、x=20これをエスケープされた 8 進文字を含む文字列に変換したいと思います。つまり...

x=20

# y = ... Some magic

p y # => "\024"

私が得ることができた最も近いものは、以下を使用することです:

x.to_s(8) # => "24"

ただし、この文字列をエスケープされた 8 進文字に変換する方法に完全に困惑しています。インターネット、アイデアはありますか?

4

3 に答える 3

2

Kernel#sprintf数値をフォーマットするために使用するだけです。

このような

x = 20
y = sprintf('\%03o', x)

puts y

出力

\024

アップデート

たぶん私はあなたを誤解しました。指定されたコード ポイントの文字が必要な場合は、 を使用しますInteger#chr

このような

x = 20
y = x.chr

p y

出力

"\x14"
于 2013-10-16T16:29:59.537 に答える
0

使用できますArray#pack

[20].pack("C")  #=> "\x14"
于 2013-10-16T16:20:28.897 に答える