2010-07-07 12 views
15

La mia configurazione è:valida sequenza di byte in US-ASCII (Ruby 1.9 + rotaie 2.3.8 + MongoDB + mongo_mapper)

linux + Ruby 1.9 + Rails 2.3.8 + mongodb + mongo_mapper

ho seguito http://railscasts.com/episodes/194-mongodb-and-mongomapper, che per prima cosa va tutto bene. Posso inserire correttamente le stringhe in inglese, ma quando inserisco alcune stringhe cinesi, questa viene inserita, ma non può essere visualizzata.

La pagina web mostra un'eccezione:

invalid byte sequence in US-ASCII 

Io uso mongo comandi per visualizzare i dati in MongoDB, ed è corretto. Ma non so perché le rotaie non possono mostrarle.

grazie in anticipo

risposta

20

Si prega di aggiungere le seguenti righe nel vostro environment.rb.

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

Il problema verrà risolto.

+0

Assicurarsi di aggiungere queste righe * all'interno * del blocco di configurazione. –

5

Ho riscontrato questo errore con un'applicazione Rack.

Aggiunta

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

al config.ru risolto per me.

18

Si può correggere questo errore scrivendo questo

export LC_ALL="en_US.UTF-8" 

al vostro ~/.profile, ~/.bash_profile o simili. Esso funziona magicamente.

+0

Grazie !!Ho combattuto con Heroku per far funzionare questa applicazione Jekyll per ore. Ho risolto il problema con 'heroku config: add LC_ALL =" en_US.UTF-8 "' – blockloop

+0

Questo risolve anche un problema in WebStorm 7 quando si usa grunt dalla riga di comando embed con Jekyll. –

0

controllare le impostazioni locale del sistema operativo. È necessario impostare la variabile di ambiente locale en_US .UTF-8` altrimenti si potrebbe affrontare questo problema.

Se il sistema operativo è Ubuntu, è possibile controllare il locale immettendo il seguente comando.

sudo locale 

e quindi è possibile ri-configurare il locale digitando il seguente comando

sudo locale-gen en_US.UTF-8 

Essa può aiutare. Grazie.

1
cd $HOME 
vi .bashrc 

add locale conf di seguito:

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

salvare ed eseguire: source ~/.bashrc

Tutto è a posto ~

0

Per me il problema era che stavo usando una versione precedente di rubino. rvm use 2.0 ha fatto il trucco.

Problemi correlati