Techioz Blog

変数から Unicode エスケープ コードを出力します。

概要

rumojiで出力したいUnicode文字コードのリストがあります。データを反復処理するために使用しているコードは次のとおりです。

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

エスケープされた文字列内で変数名を使用する方法がわかりません。

解決策

優先されるため、文字列補間と一緒に使用することはできません。できることは、整数の配列を Array#pack することです。

▶ data.map { |e| e.to_i(16) }.pack 'U*'
#⇒ "😀👶👴"