2011-06-29 10 views
3

私たちはMongoDBとPHPを使ってPayPalのIPNを処理しています。問題は、私たちがロシアの顧客を数多く抱えていて、私のようにMongoDBにデータを正しく格納させることができないことです。MongoDB/PHPはロシア語の文字が好きではありません

たとえば、Юлияという顧客には、同様の書式設定された文字を持つロシア語のアドレスがあります。これをPHPで直接出力すると正しく表示されますが、MongoDBに入れて呼び出すと、ЮлиÑ

私はさまざまなエンコーディングを試しましたが、MongoDBが返すようになるたびに間違ったテキスト。これらの文字をMongoDBに格納し、それらを取得できるようにテキストをどのようにフォーマットする必要がありますか?ストレージ用に1つの形式に変換してから、もう一度変換して表示する必要がありますか?

+0

アプリケーションの入力はどのエンコードですか、アプリケーションの出力はどのエンコードですか? – hakre

+0

MongoDBに保存するコードとMongoDBからの読み取り場所を追加してください。 – hakre

答えて

3

Mongoはすべての文字列をutf-8として保存し、それらがそのまま渡されることを期待しています。データをutf-8に変換してからmongoに送ってください。

+0

そしてMongoから戻って元のエンコーディングに戻してください;) – hakre

+1

確かに、またはあなたのアプリ全体にutf-8エンコーディングを使って、そんな愚かさを避けてください:p –

+0

私はエンコーディングの愚かさを真剣には呼んでいませんが、アプリケーションIO全体のエンコーディングとしてのUTF-8は悪くはない:D – hakre

関連する問題