Print Unicode escape codes from variable

2019-02-28 09:21发布

I have a list of Unicode character codes that I would like to output with rumoji. Here's the code I'm using to iterate over my data.

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

I'm not sure how I can use variable names inside the escaped string.

1条回答
ゆ 、 Hurt°
2楼-- · 2019-02-28 10:02

One can not use \u along with string interpolation, since \u takes precedence. What one might do, is to Array#pack an array of integers:

▶ data.map { |e| e.to_i(16) }.pack 'U*'
#⇒ "                                                                    
查看更多
登录 后发表回答