1

mysql データベースからデータを取得する必要があります。データベースにクエリを実行し、json エンコードして印刷する php スクリプトを実行しています。サーバーのphpでhttppostを介してアプリケーションから結果を取得しています。サーバーからすべてのデータを取得していますが、特殊/型指定されていない文字を含むいくつかのエントリを除きます。 null.したがって、これらの文字を '"' サーバー側のような型指定された文字に置き換える以外に...これらのデータをこれらの文字で取得してアプリケーションに表示する方法はありますか?ありがとう.

 try{
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost(KEY_121);
                    //httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();

            }catch(Exception e){
                    Log.e("cxxn", "Error in http connection "+e.toString());
            }

            //convert response to string
            try{
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                            sb.append(line + "\n");
                    }
                    is.close();
                    result=sb.toString();
            }catch(Exception e){
                    Log.e("convt", "Error converting result "+e.toString());
            }

結果には、特殊文字を含むデータの null 値が含まれます。使用しているエンコーディングを変更する必要がありますか? 編集: MySQL の文字セットは: UTF-8 Unicode (utf8)

<?php

      mysql_connect("","","");

      mysql_select_db("fdict");

      $q=mysql_query("SELECT (Id), (WD), (des), (udte) FROM `dict`");

      while($e=mysql_fetch_assoc($q))

              $output[]=$e;

           print(json_encode($output));

    mysql_close();
?>

これは私のサーバー側の php コードです。サーバー アドレス、pass を削除しました。特殊文字を含むデータは、json_encode() の後でのみ null になるようです。SQL クエリ結果のエコーは、null 値のない適切なデータを示します。誰か助けてくださいthis.What can I do..?私のオプションは何ですか..?

ありがとう。

4

1 に答える 1

1

これを使用して解決しました。SELECT クエリの前に配置する必要がmysql_query('SET CHARACTER SET utf8')あります。これにより、utf8 形式で取得されます。

于 2012-08-31T17:22:45.410 に答える