2012-04-27 15 views
1

結果を返しません。設定はAngularJSのホームページの‘Wire up a backend’デモと似ています。これまでは、単純に構造化された単一のMongoDBコレクション(Mongolab上でホストされている)に大量の文書を保存することができました。これらの文書は、ギリシャ文字や数字のものとラテン文字を使用したキーと値が含まれています。実行クエリ私は<strong>AngularJS</strong>フレームワークと<strong>MongoDBの</strong>を組み合わせたHTML5アプリを構築してい

{ "name": "Νίκος", "value": 1.35} 

私はこれらの文書は、UTF-8でエンコードされているかなり確信しています。問題は、ギリシャ文字を含む文字列を渡してJSでデータベースをクエリしようとすると、結果がゼロになることです。

var queryString = "{\"name\": \"Νίκος\"}"; 
$scope.query_results = Project.query({q: query_string}, null, $scope.query_success); 

phpを使用した同じクエリで正しい結果が返されます。数値またはラテン文字を含む他のクエリはすべて正常に実行されます(phpまたはjsのいずれか)。ですから、唯一の問題はギリシア文字を使ってjsを使ってdbをクエリしようとするときです。

私はjsドキュメントのエンコーディングをutf-8にチェックして、htmlメタキャラクタセット属性をutf-8に設定しました。私はまた、データベースを照会する前にutf-8に照会文字列をエンコードしようとしましたが、成功しませんでした。

アイデア?おかげさまで

答えて

0

シェルから私のために働いています(私はあなたのサンプル文書をコピーして、名前のクエリーからコピーしました)ので、少なくともあなたはutf-8文字が同じように見える問題少し異なります:

> db.test.insert({ "name": "Νίκος", "value": 1.35}); 
> db.test.find({name: "Νίκος"}); 
{ "_id" : ObjectId("4f9b1642c26c79dac82740c5"), "name" : "Νίκος", "value" : 1.35 } 

jsファイルのファイルエンコードを確認してください。実際のプログラムでは、GETやPOSTを使ってURLでエンコードされたフォームから検索値を取得するので、jsファイルのエンコーディングは問題になりません。

フォームにaccept-charset="utf-8"を設定してみることがあります。それがAJAXであるか、アングルバインディングを介してJSを介して投稿されている場合は、文字エンコーディングも送信する前に設定されていることを確認してください。このようなもの? http://groups.google.com/group/angular/browse_thread/thread/e6701e749d4bc8ed

関連する問題