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.