2011-08-22 68 views
2

在處理一個C++項目時,我們決定使用MongoDB數據庫來存儲我們應用程序的一些數據。我花了一週的時間鏈接和編譯C++驅動程序,現在它的作品。但它是一個麻煩:像Mongodb C++驅動程序:字符串編碼

bob.append("name", "some text with cyrilic symbols абвгд"); 

字符串被添加不正確,並從數據庫中的模樣4-5中國符號提取後。

我沒有發現有關在MongoDB中使用unicode的文檔,所以我無法理解如何將unicode寫入數據庫。

回答

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字符(包括西裏爾字母)。我認爲C++ API假定字符串是UTF-8編碼的,但我不確定。

這裏有一些想法:

  • 如果你的代碼上述(bob.append("name" ...等)是一個C++源代碼文件,嘗試編碼該文件作爲UTF-8。
  • 嘗試通過mongodb外殼插入Unicode字符。