Estoy usando Ruby 1.9.1 con Rails 2.3.4 Mi aplicación es manejar el ingreso de texto
Si intento algo como (las comillas internas se ven diferentes)
text = "”“"
Obtuve el siguiente error:
#<SyntaxError: /Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: syntax error, unexpected $end, expecting keyword_end
¿Necesito usar esas comillas ya que los usuarios pueden ingresarlas y tengo que dar cuenta de eso?
¿Algunas ideas?
Respuestas:
¿Has intentado agregar un comentario mágico en el script donde usas caracteres no ASCII? Debería ir encima del guión.
Funcionó para mí como un encanto.
fuente
#!/bin/env ruby
no es necesario a menos que esté ejecutando el script desde la línea de comandos como un ejecutable. La# encoding
línea funciona por sí sola.# encoding: utf-8
. Es finales de 2013 y todavía tenemos que jugar este juego. Espera, suena el teléfono ... Era 2033, llamaron para decir que todavía lo tocaban. Bueno, gracias por recordármelo, Jarek Zmudzinski de 2010.Si desea agregar comentarios mágicos en todos los archivos fuente de un proyecto fácilmente, puede usar la
magic_encoding
gemaluego simplemente llame
magic_encoding
al terminal desde la raíz de su aplicación.fuente
magic_encoding
es solo una herramienta de línea de comandos, no una dependencia del proyecto.Solo quiero agregar mi solución:
utilizo diéresis alemanas como ö, ü, ä y obtuve el mismo error.
@Jarek Zmudzinski te acaba de decir cómo funciona, pero aquí está el mío:
Agregue este código a la parte superior de su controlador:
# encoding: UTF-8
(por ejemplo, para usar un mensaje flash con diéresis)
ejemplo de mi controlador:
Ahora puede usar ö, ä, ü, ß, "", etc.
fuente
Esas comillas dobles inclinadas no son caracteres ASCII. El mensaje de error es engañoso acerca de que son 'multibyte'.
fuente
Solo una nota de que a partir de Ruby 2.0 no hay necesidad de agregar
# encoding: utf-8
. UTF-8 se detecta automáticamente.fuente
Eso funcionó para mí:
fuente