Ответ 1
Добавьте в свою среду следующие строки.
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Проблема будет решена.
Моя настройка:
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, и это правильно. Но я не знаю, почему рельсы не могут их отобразить.
заблаговременно
Добавьте в свою среду следующие строки.
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
Проблема будет решена.
Вы можете исправить эту ошибку, написав это
export LC_ALL="en_US.UTF-8"
к вашим ~/.profile
, ~/.bash_profile
или аналогичным. Он работает как шарм.
У меня была эта ошибка с приложением Rack.
Добавление
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
to config.ru
разрешил это для меня.
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
Все в порядке ~
проверьте настройки locale
вашей ОС. Вам нужно настроить переменную среды en_US
.UTF-8`, иначе вы можете столкнуться с этой проблемой.
Если ваша операционная система Ubuntu
, вы можете проверить свой locale
, введя следующую команду.
sudo locale
а затем вы можете повторно настроить свой язык, введя следующую команду
sudo locale-gen en_US.UTF-8
Это может помочь вам. Спасибо.
Для меня проблема заключалась в том, что я использовал более старую версию ruby. rvm use 2.0
сделал трюк.