2011-06-29 48 views
3

我們使用MongoDB和PHP來處理來自PayPal的IPN。問題是我們有很多來自俄羅斯的客戶,盡我所能,我無法讓MongoDB正確存儲數據。MongoDB/PHP不喜歡俄文字符

例如,我們有一個客戶名爲Юлия,俄羅斯地址的格式字符相似。如果我直接在PHP中打印出來,它會正確顯示,但是如果我把它放到MongoDB中並回調它,我只會得到它。我試過各種編碼,但每次MongoDB似乎都返回錯誤的文字。我應該如何格式化文本以將這些字符存儲在MongoDB中並能夠檢索它們?我是否需要將它們轉換爲一種格式進行存儲,然後再將它們轉換回來進行顯示?

+0

哪種編碼是應用程序的輸入,哪種編碼是應用程序的輸出? – hakre

+0

請將您存儲的代碼添加到您從MongoDB中讀取的位置。 – hakre

回答

3

Mongo將所有字符串存儲爲utf-8,並期望它們按照這種方式交付。只需將您的數據轉換爲utf-8,然後將其發送到mongo並設置好即可。

+0

並從Mongo獲取後將其轉換回原始編碼;) – hakre

+1

確實,或者只是在您的應用中使用utf-8編碼以避免所有這些愚蠢:p –

+0

我不會認真調用編碼愚蠢,但是,寧願UTF-8作爲整個應用程序的編碼IO聽起來不錯:D – hakre