ruby-on-rails ruby-1.9

ruby on rails - carácter multibyte no válido(US-ASCII) con Rails y Ruby 1.9



ruby-on-rails ruby-1.9 (6)

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

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

Funcionó para mí como un encanto.

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

Si intento algo como (las comillas son 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?


Esas comillas dobles inclinadas no son caracteres ASCII. El mensaje de error es engañoso acerca de que sean ''multi-byte''.


Eso funcionó para mí:

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


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

sudo gem install magic_encoding

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


Solo quiero añadir mi solución:

Uso umlauts alemanes como ö, ü, ä y obtuve el mismo error.
@Jarek Zmudzinski acaba de decirte 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 utilizar mensajes flash con diéresis)

ejemplo de mi controlador:

# encoding: UTF-8 class UserController < ApplicationController

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


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