Ruby on rails Mongoid无法查询非拉丁语属性
我的Mongoid文档有两个属性:Ruby on rails Mongoid无法查询非拉丁语属性,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,我的Mongoid文档有两个属性::en_name和ru_name。我创建了一个模型: MyModel.create(en_name: 'sport', ru_name: 'спорт') 然后我问: MyModel.where(en_name: 'sport').first 它把我的模型还给我 当我尝试查询时: MyModel.where(ru_name: 'спорт').first 它返回我nil 如何使Mongoid能够查询非拉丁语的属性?Mongodb使用UTF-8。但是,如果服
:en_name
和ru_name
。我创建了一个模型:
MyModel.create(en_name: 'sport', ru_name: 'спорт')
然后我问:
MyModel.where(en_name: 'sport').first
它把我的模型还给我
当我尝试查询时:
MyModel.where(ru_name: 'спорт').first
它返回我nil
如何使Mongoid能够查询非拉丁语的属性?Mongodb使用UTF-8。但是,如果服务器在Windows上运行,您可能会遇到问题,因为Windows使用CP1251。 使用(跨平台图形客户机)可以确保数据以正确的编码写入数据库。 BSON只能用UTF-8编码。如果数据显示不正确,则在将数据上载到mongodb之前,您可能没有将其转换为UTF-8 检查编码
encoding\u name=str.encoding.name
Convert encoding
utf_str=Iconv.conv('windows-1251','utf-8',str)
我通过键入mongo
命令打开了我的MongoDB控制台。然后我键入了使用我的项目名称。然后我写下你的命令,它什么也不做。这个网站给我502错误。当我试着打开它的时候。我稍后打开它,我检查了将在Mongoid中查询的字符串的编码。它说我的编码已经是UTF-8了。我会考虑你的问题还可能是什么引起的。顺便说一下,这里有一个关于使用mongoid实现国际化的好方法。Mongoid支持I18n,国际化需要最少的代码编写。希望这篇文章会有用。