carácter multibyte inválido (US-ASCII) con Rails y Ruby 1.9

Estoy usando Ruby 1.9.1 con Rails 2.3.4 Mi aplicación es para manejar el ingreso de texto

Si bash algo así (las comillas interiores 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?

¿Has intentado agregar un comentario mágico en el guión donde usas caracteres no ASCII? Debería ir encima del script.

 #!/bin/env ruby # encoding: utf-8 

Me funcionó como un encanto.

Si desea agregar comentarios mágicos en todos los archivos fuente de un proyecto fácilmente, puede usar la gem magic_encoding

 sudo gem install magic_encoding 

luego simplemente llame a magic_encoding en la terminal desde la raíz de su aplicación.

Solo quiero agregar mi solución:

Utilizo umlauts alemanes 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 el mensaje flash con diéresis)

ejemplo de mi controlador:

 # encoding: UTF-8 class UserController < ApplicationController 

Ahora puedes usar ö, ä, ü, ß, "", etc.

Esas comillas dobles inclinadas no son caracteres ASCII. El mensaje de error es engañoso acerca de que sean ‘multibyte’.

Solo una nota que a partir de Ruby 2.0 no hay necesidad de agregar # encoding: utf-8 . UTF-8 se detecta automáticamente.

Eso funcionó para mí:

 $ export LC_ALL=en_US.UTF-8 $ export LANG=en_US.UTF-8