0

問題が PHP にあるのか Android アプリケーションにあるのかはわかりませんが、データを含む HttpPost を送信して ??? しか取得していません。データベーステーブルに挿入されました。PHPで次のことを行いました。

     $db_con = mysql_connect($db_host,$db_uid,$db_pass) or die('could not connect');
     mysql_query("SET NAMES utf8;");
     mysql_query("SET CHARACTER_SET utf8;");

次に、Androidで次のことを行いました:

           String postReceiverUrl = "http://hwy.com/displaypost.php";
        HttpParams params = new BasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(params, "utf-8");
        // HttpClient
        HttpClient httpClient = new DefaultHttpClient(params);

        // post header
        HttpPost httpPost = new HttpPost(postReceiverUrl);

        // add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

        //All user input
        EditText shopName = (EditText)findViewById(R.id.shopName);
        EditText shopLocation = (EditText)findViewById(R.id.shopLocation);
        EditText shopCity = (EditText)findViewById(R.id.shopCity);
        EditText discountRate = (EditText)findViewById(R.id.shopDiscount);
        EditText discountDuration = (EditText)findViewById(R.id.shopDiscountDuration);

        nameValuePairs.add(new BasicNameValuePair("name", shopName.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("location", shopLocation.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("city", shopCity.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("rate", discountRate.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("duration", discountDuration.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("category", shopCategory));

        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // execute HTTP post request

        HttpResponse response = httpClient.execute(httpPost);
        HttpEntity resEntity = response.getEntity();

        if (resEntity != null) {

            String responseStr = EntityUtils.toString(resEntity).trim();
            Log.v("", "Response: " +  responseStr);

            // you can add an if statement here and do other actions based on the response
        }

logcat で受け取った応答は次のとおりです。

07-20 10:52:56.996: V/(7749): Response: Array
07-20 10:52:56.996: V/(7749): (
07-20 10:52:56.996: V/(7749):     [name] => ???????
07-20 10:52:56.996: V/(7749):     [location] => ???????
07-20 10:52:56.996: V/(7749):     [city] => ???????
07-20 10:52:56.996: V/(7749):     [rate] => ???????
07-20 10:52:56.996: V/(7749):     [duration] => ??????
07-20 10:52:56.996: V/(7749):     [category] => ????? ? ?????????
07-20 10:52:56.996: V/(7749): )

なぜこれが分裂しているのか分かりますか?

前もって感謝します

4

1 に答える 1

0

その答えは、長い研究と実験の末に見つかりました。これです:

 httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");

に続く:

    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));

それだけです!いつか誰かに役立つことを願っています

于 2013-07-20T13:12:19.010 に答える