私はAndroidを使って書かれたクライアント/サーバアプリケーションを持っていますが、私は解析と作成を行うためにアンドロイドにバンドルされた標準org.jsonパッケージクラスを使用しています。Json.org Androidに奇妙な文字を追加する
私は(その大きいので、ないフル1)右例えば生成JSON文字列の途中で、サーバー側で表示される変な文字を取得してきた:あなたが見ることができるように
{!lo":"es_MX","id":2791884,"os":"8"}
(!)感嘆符は、二重引用符の代わりにランダムに表示されます。私はまた、他のランダムな文字が中央の文字列に表示されます。それは非常に奇妙です。
ここでJSONオブジェクトを作成するコードはここ
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", someValue);
が送信するコードです... ..です
HttpPost type = new HttpPost(<server url here>);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("v", jsonObject.toString()));
type.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
httpClient.execute(type); // This is a DefaultHttpClient
私はランダムと言うが、この正確な位置にある感嘆符多くのエラーで一貫していますが、毎回ではありません。このエラーが発生するメッセージは約5件あり、1日当たり数万件にのぼります。そして、通常、jsonに挿入された値の内容ではなく、メッセージの構造を定義する文字(上記の引用符文字など)。これは、文字セットの問題ではないことを示唆しています。
誰かがこれを見かけますか?
JSONを生成するコードを投稿できますか? –
JSON規則に従って、サーバー側からJSON文字列が整形式に構築されていることを確認できますか? – MKJParekh
これはほぼ確実にキャラクタセットやエンコードの問題です。クライアント、サーバー、および転送中に、コンテンツのエンコードと文字セットが同じであることを確認する必要があります。 – Jonathan