2012-07-31 14 views
10

Chcę wstawić znak pojedynczego ciągu znaków, którego jeszcze nie zaimplementowałem. Jak wydrukować bałwana w Rubim 1.9?Jak wydrukować bałwana przy użyciu Ruby

Obecnie mogę zrobić

# coding: utf-8 
puts "☃" 

lub

puts "\u2603" 

ale jest to możliwe, aby użyć pola "Index wpisy" (wspomniany here) snowy weather lub SNOWMAN lub weather, snowy aby uzyskać znak wydrukować?

Nie używam szyn.

Odpowiedz

7

Możesz pobrać Name Index from unicode.org i przeanalizować nazwy znaków w Hash (lub lepiej DB lub podobne).

Następnie można uzyskać to za pomocą normalnych funkcji dostępu do danych.

Przykład:

# 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 

Edit:

Jest gem unicode_utils. Z tym klejnotem możesz:

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

+1. Może twoja maszyna się przegrzewa i topi bałwana zaraz po wydrukowaniu. – Eduardo

+3

@Eduardo To by wyjaśniało kałużę pod moim laptopem;) – knut

Powiązane problemy