在处理一个c ++项目期间,我们决定使用MongoDB数据库来存储我们应用程序的一些数据。我花了一周的时间来链接和编译c ++驱动程序,现在它的工作原理。但这是一个麻烦:像
这样的字符串bob.append("name", "some text with cyrilic symbols абвгд");
添加错误,从数据库中提取后看起来像4-5个中文符号。
我没有找到关于在mongodb中使用unicode的文档,所以我无法理解如何将unicode写入数据库。
答案 0 :(得分:1)
你的例子,example code in the C++ tutorial on mongodb.org在Ubuntu 11.10上对我很好。我的语言环境是en_US.UTF-8,我创建的源文件是UTF-8。
MongoDB将数据存储在BSON中,BSON strings are UTF-8和UTF-8可以处理任何Unicode字符(包括Cyrillic)。我认为C ++ API假设字符串是UTF-8编码的,但我不确定。
以下是一些想法:
bob.append("name"
...等)位于C ++源代码文件中,请尝试将该文件编码为UTF-8。