ruby string unicode utf-8 ruby-1.8.7

encoding ruby



Ruby Output Unicode Character (4)

En Ruby 1.9.x +

Utilice String#encode :

checkmark = "/u2713" puts checkmark.encode(''utf-8'')

huellas dactilares

En Ruby 1.8.7

puts ''/u2713''.gsub(///u[/da-f]{4}/i) { |m| [m[-4..-1].to_i(16)].pack(''U'') } ✓

No soy un desarrollador de Ruby por comercio, pero estoy usando Capistrano para las implementaciones de PHP. Estoy tratando de limpiar el resultado de mi script y estoy tratando de agregar una marca de verificación Unicode como se discutió en este blog .

El problema es si lo hago:

checkmark = "/u2713" puts checkmark

Muestra "/ u2713" en lugar de ✓

He buscado en Google y simplemente no puedo encontrar ningún lugar donde se discuta esto.

TLDR: ¿Cómo pongo o imprimo la marca de verificación Unicode U-2713?

EDITAR

Estoy ejecutando Ruby 1.8.7 en mi Mac (OSX Lion) por lo que no puedo usar el método de encode . Mi caparazón es Bash en iTerm2.


En las versiones más nuevas de Ruby, no necesita aplicar la codificación. Aquí hay un ejemplo con 2.1.2 :

2.1.2 :002 > "/u00BD" => "½"

¡Solo asegúrate de usar comillas dobles!


Lo mismo ocurre en ERB, no se requiere codificación forzada, funciona perfectamente, probado en Ruby 2.3.0

<%= "/u00BD" %>

Mucho aprecio


la respuesta de falsetru es incorrecta.

checkmark = "/u2713" puts checkmark.encode(''utf-8'')

Esto transcodifica la marca de verificación de la codificación del sistema actual a la codificación UTF-8. (Eso solo funciona en un sistema cuyo valor predeterminado ya es UTF-8).

La respuesta correcta es:

puts checkmark.force_encoding(''utf-8'')

Esto modifica la codificación de la cadena, sin modificar ninguna secuencia de caracteres.