2012-07-31 13 views
10

Quiero un marcador de posición para una cadena de caracteres que aún no he implementado. ¿Cómo imprimo un muñeco de nieve en Ruby 1.9?Cómo imprimir un muñeco de nieve con Ruby

Actualmente, no puedo hacer

# coding: utf-8 
puts "☃" 

o

puts "\u2603" 

pero ¿es posible utilizar el campo "entradas de índice" (mencionado here) snowy weather o SNOWMAN o weather, snowy para obtener el carácter de ¿impresión?

No estoy usando Rails.

Respuesta

7

Puede descargar el Name Index from unicode.org y analizar los nombres de los caracteres en un Hash (o mejor en un DB o similar).

Luego puede obtenerlo con las funciones normales de acceso a datos.

Ejemplo:

# 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 

Editar:

Hay una joya unicode_utils. Con esta joya puedes usar:

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

+1. Tal vez su máquina se está sobrecalentando y fundió el muñeco de nieve tan pronto como se imprimió. – Eduardo

+3

@Eduardo Eso explicaría el charco debajo de mi computadora portátil;) – knut

Cuestiones relacionadas