从变量打印Unicode转义码

idl*_*erg 1 ruby unicode-escapes

我有一个我想输出的Unicode字符代码列表rumoji.这是我用来迭代我的数据的代码.

require "rumoji"

# this works
puts Rumoji.decode("\u{1F600}")

# feed some data
data = [
    "1F600",
    "1F476",
    "1F474"
]

data.each do |line|
    # this doesn't work
    puts Rumoji.decode("\u{#{line}}")
    puts Rumoji.decode("\u{" + line + "}")
end
Run Code Online (Sandbox Code Playgroud)

我不确定如何在转义字符串中使用变量名称.

Ale*_*kin 5

\u由于\u优先权,因此不能与字符串插值一起使用.人们可能会做的是Array#pack一个整数数组:

? data.map { |e| e.to_i(16) }.pack 'U*'
#? ""
Run Code Online (Sandbox Code Playgroud)