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中的数据,这是正确的。 但我不知道为什么rails无法显示它们。
提前致谢
请在您的environment.rb中添加以下行。
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
在下面添加语言环境:
export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export LC_CTYPE=en_US.UTF-8
保存并运行:source~ / .bashrc
一切都还好〜
检查操作系统的locale
设置。 您需要设置en_US
.UTF-8`语言环境变量,否则您可能会遇到此问题。
如果您的操作系统是Ubuntu
那么您可以通过键入以下命令来检查您的locale
。
sudo locale
然后,您可以通过键入以下命令重新配置您的区域设置
sudo locale-gen en_US.UTF-8
它可能会帮助你。 谢谢。
对我来说问题是我使用的是旧版本的ruby。 rvm use 2.0
做了伎俩。
- Mongoid Association创建(不需要的)记录
- mongo + passenger:从rails中重新连接到数据库的正确方法? 如何确保最佳的mongo性能?
- 使用Mongoid,我可以“update_all”一次将值推送到多个条目的数组字段吗?
- Rails 4 / Devise / MongoDB:使用自定义属性和强参数的“未允许的参数”
- MongoMapper(或任何其他Mongodb适配器)是否有类似“accepts_nested_attributes_for”的方法?
- mongodb中的多重限制条件
- 使用mongoid / mongodb提取,建模和更改数据模型
- MongoDB的分页
- 运行时更改模型与mongodb / mongoid