2010-07-07 8 views
15

Moja konfiguracja to:nieprawidłowa sekwencja bajtów w US-ASCII (Ruby 1.9 + szyny 2.3.8 + MongoDB + mongo_mapper)

Linux + Ruby 1.9 + szyny 2.3.8 + MongoDB + mongo_mapper

Śledziłem http://railscasts.com/episodes/194-mongodb-and-mongomapper, że wszystko jest w porządku. Mogę z powodzeniem wstawiać łańcuchy angielskie, ale kiedy wstawię niektóre chińskie ciągi, to wstawione, ale nie mogą być wyświetlane.

strona internetowa pokazuje wyjątek:

invalid byte sequence in US-ASCII 

używam polecenia mongo aby zobaczyć dane w MongoDB, i to jest prawidłowe. Ale nie wiem, dlaczego szyny nie mogą ich wyświetlić.

góry dzięki

Odpowiedz

20

proszę dodać następujące wiersze w environment.rb.

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

problem zostanie rozwiązany.

+0

Należy dodać te linie * wewnątrz * bloku konfiguracji. –

5

Miałem ten błąd w aplikacji Rack.

Dodawanie

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

do config.ru rozwiązany to dla mnie.

18

można naprawić ten błąd pisząc ten

export LC_ALL="en_US.UTF-8" 

do swojej ~/.profile, ~/.bash_profile lub podobnym. To działa jak urok.

+0

Dziękuję !!Walczyłem z Heroku z tym, że aplikacja Jekyll działa przez wiele godzin. Rozwiązałem go za pomocą 'heroku config: add LC_ALL =" en_US.UTF-8 "' – blockloop

+0

Rozwiązuje to również problem w WebStorm 7 podczas korzystania z polecenia z linii poleceń embed z Jekyll. –

0

sprawdź ustawienia swojego locale systemu operacyjnego. Musisz ustawić en_US .UTF-8` zmienną środowiskową, w przeciwnym razie możesz napotkać ten problem.

Jeśli system operacyjny to Ubuntu, można sprawdzić numer locale, wpisując następujące polecenie.

sudo locale 

a następnie można ponownie skonfigurować ustawienia regionalne, wpisując następującą komendę

sudo locale-gen en_US.UTF-8 

To może pomóc. Dzięki.

1
cd $HOME 
vi .bashrc 

add locale conf poniżej:

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

zapisać i uruchomić: source ~/.bashrc

Wszystko jest w porządku ~

0

Dla mnie problemem było to, używałem starsza wersja rubinu. rvm use 2.0 załatwił sprawę.

Powiązane problemy