给定一个整数 - 比如说 ,x=20
我想将其转换为包含其转义八进制字符的字符串。IE ...
x=20
# y = ... Some magic
p y # => "\024"
我设法得到的最接近的是使用:
x.to_s(8) # => "24"
但是,我完全不知道如何将此字符串转换为转义的八进制字符!任何想法,互联网?
给定一个整数 - 比如说 ,x=20
我想将其转换为包含其转义八进制字符的字符串。IE ...
x=20
# y = ... Some magic
p y # => "\024"
我设法得到的最接近的是使用:
x.to_s(8) # => "24"
但是,我完全不知道如何将此字符串转换为转义的八进制字符!任何想法,互联网?
只需用于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"
x = 20
y = '\%03o' % x
puts y
如果您使用p显示y,您会看到 2 个反斜杠,因为p输出 ruby 可解析字符串。