Неверная последовательность байтов в US-ASCII (Ruby 1.9 + rails 2.3.8 + mongodb + mongo_mapper)

Моя настройка:

linux + Ruby 1.9 + rails 2.3.8 + mongodb + mongo_mapper

Я следил за http://railscasts.com/episodes/194-mongodb-and-mongomapper, что сначала все в порядке. Я могу вставить английские строки успешно, но когда я вставляю некоторые китайские строки, он вставлен, но не отображается.

На веб-странице отображается исключение:

invalid byte sequence in US-ASCII 

Я использую команду mongo для просмотра данных в mongodb, и это правильно. Но я не знаю, почему рельсы не могут их отобразить.

заблаговременно

Ответы

Ответ 1

Добавьте в свою среду следующие строки.

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

Проблема будет решена.

Ответ 2

Вы можете исправить эту ошибку, написав это

export LC_ALL="en_US.UTF-8"

к вашим ~/.profile, ~/.bash_profile или аналогичным. Он работает как шарм.

Ответ 3

У меня была эта ошибка с приложением Rack.

Добавление

   Encoding.default_external = Encoding::UTF_8

   Encoding.default_internal = Encoding::UTF_8

to config.ru разрешил это для меня.

Ответ 4

cd $HOME
vi .bashrc

добавить locale conf ниже:

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

сохранить и запустить:   источник ~/.bashrc

Все в порядке ~

Ответ 5

проверьте настройки locale вашей ОС. Вам нужно настроить переменную среды en_US.UTF-8`, иначе вы можете столкнуться с этой проблемой.

Если ваша операционная система Ubuntu, вы можете проверить свой locale, введя следующую команду.

sudo locale

а затем вы можете повторно настроить свой язык, введя следующую команду

sudo locale-gen en_US.UTF-8

Это может помочь вам. Спасибо.

Ответ 6

Для меня проблема заключалась в том, что я использовал более старую версию ruby. rvm use 2.0 сделал трюк.