如何使用Ruby打印雪人

时间:2012-07-31 07:08:44

标签: ruby unicode

我想要一个我尚未实现的单个字符串的占位符。如何在Ruby 1.9中打印雪人?

目前,我可以做到

# coding: utf-8
puts "☃"

puts "\u2603"

但是否可以使用“索引条目”字段(提及heresnowy weatherSNOWMANweather, snowy来获取要打印的字符?

我没有使用Rails。

1 个答案:

答案 0 :(得分:7)

您可以下载Name Index from unicode.org并将字符名称解析为哈希(或更好的数据库或类似代码)。

然后你可以使用普通的数据访问功能来获取它。

示例:

# coding: utf-8
index = {}
File.readlines('Index.txt').each{|line|
  line =~ /(.*)\t(.*)$/
  index[$1] = $2.to_i(16).chr("UTF-8")
}

snowman = index['SNOWMAN']
p snowman #hope it works. My shell does not show the snowman
p "\u2603" == snowman #true

编辑:

有一个宝石unicode_utils。有了这个宝石你可以使用:

require "unicode_utils/grep"
p UnicodeUtils.grep(/^snowman$/) #=> [#<U+2603 "\u2603" SNOWMAN utf8:e2,98,83>]