我的设置是:
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中的数据,这是正确的。但我不知道为什么rails无法显示它们。
提前致谢
答案 0 :(得分:20)
请在您的environment.rb。
中添加以下行Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
问题将会解决。
答案 1 :(得分:18)
您可以更正此错误来写这个
export LC_ALL="en_US.UTF-8"
发送给~/.profile
,~/.bash_profile
或类似内容。它就像一个魅力。
答案 2 :(得分:5)
我在Rack应用程序中遇到此错误。
添加
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
以config.ru
为我解决了这个问题。
答案 3 :(得分:1)
cd $HOME
vi .bashrc
在下面添加语言环境:
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE=en_US.UTF-8
保存并运行: 来源〜/ .bashrc
一切都很好〜
答案 4 :(得分:0)
检查您的操作系统的locale
设置。您需要设置en_US
。UTF-8`语言环境变量,否则您可能会遇到此问题。
如果您的操作系统为Ubuntu
,则可以键入以下命令检查locale
。
sudo locale
然后您可以通过键入以下命令重新配置您的语言环境
sudo locale-gen en_US.UTF-8
它可能对你有所帮助。感谢。
答案 5 :(得分:0)
对我来说问题是我使用的是旧版本的ruby。 rvm use 2.0
成功了。