2010-07-07 16 views
15

Mi configuración es:secuencia de bytes no válida en US-ASCII (Ruby 1.9 + carriles 2.3.8 + + mongodb mongo_mapper)

Linux + Ruby 1.9 + rieles 2.3.8 + + mongodb mongo_mapper

Seguí http://railscasts.com/episodes/194-mongodb-and-mongomapper, que todo está bien primero. Puedo insertar cadenas en inglés con éxito, pero cuando inserto algunas cadenas chinas, se inserta, pero no se puede mostrar.

La página web muestra una excepción:

invalid byte sequence in US-ASCII 

utilizo mongo comando para ver los datos en MongoDB, y es correcta. Pero no sé por qué los rieles no pueden mostrarlos.

gracias de antemano

Respuesta

20

Por favor, añada las siguientes líneas en su environment.rb.

Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 

El problema estará resuelto.

+0

Asegúrese de agregar estas líneas * dentro * del bloque de configuración. –

5

Tuve este error con una aplicación de Rack.

Adición

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

a config.ru resuelto por mí.

18

Usted puede corregir este error de escribir este

export LC_ALL="en_US.UTF-8" 

a su ~/.profile, ~/.bash_profile o similar. Funciona a las mil maravillas.

+0

¡Gracias!He estado peleando con Heroku por hacer que esta aplicación Jekyll se ejecute durante horas. Lo resolví con 'heroku config: add LC_ALL =" en_US.UTF-8 "' – blockloop

+0

Esto también resuelve un problema en WebStorm 7 cuando se utiliza grunt desde la línea de comandos de inserción con Jekyll. –

0

verifique su configuración locale de su sistema operativo. Necesita configurar en_US .UTF-8` variable de entorno local; de lo contrario, puede enfrentar este problema.

Si su sistema operativo es Ubuntu, entonces puede verificar su locale escribiendo el siguiente comando.

sudo locale 

y luego puede volver a configurar la configuración regional escribiendo el siguiente comando

sudo locale-gen en_US.UTF-8 

Puede ayudarle. Gracias.

1
cd $HOME 
vi .bashrc 

complemento conf localidad a continuación:

export LANG="en_US.UTF-8" 
export LC_ALL="en_US.UTF-8" 
export LC_CTYPE=en_US.UTF-8 

guardar y ejecutar: source ~/.bashrc

Todo está bien ~

0

Para mí, el problema era que yo estaba usando una versión anterior de ruby. rvm use 2.0 hizo el truco.

Cuestiones relacionadas