1

ユーザーからの入力を受け取る 2 つのテキスト ボックスを持つサンプル アプリを開発しています。ユーザーがグジャラート語でデータを入力できるように、ボタンを使用してグジャラート語キーボードを作成しました。ユーザーが [保存] ボタンを押すと、データが MySQL に保存されます。これは私の完全なコードです:

public void saveMy(View v)
{
    name=e1.getText().toString();
    no=e2.getText().toString();
    try {
            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://10.0.2.2/GujaratiApp/myPHP.php");


            ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
            postParameters.add(new BasicNameValuePair("Name",name));
            postParameters.add(new BasicNameValuePair("No",no));
            httppost.setEntity(new UrlEncodedFormEntity(postParameters));

            HttpResponse response = httpclient.execute(httppost);
            Log.i("postData", response.getStatusLine().toString());
        }
    catch(Exception ex)
    {
        Log.e("log_tag", "Error:  "+ex.toString());
    }   


}

そして私のPHPファイルは次のとおりです。

<?php 

  mysql_connect("localhost","root","") or die(mysql_error());

  mysql_select_db("newDB");

  $name =   $_POST['Name'];

  $no = $_POST['No'] ;

  print("Name is:   ".$name."             And No is:".$no);

  $query_add="INSERT INTO  myData (`name` ,`no` ) VALUES ('$name','$no')";

  $query_exec=mysql_query($query_add) or die(mysql_error()); 

  mysql_close();

?>

データベースの作成に使用されるクエリは次のとおりです。

CREATE TABLE myData (name VARCHAR(20) NOT NULL,no VARCHAR(5) NOT NULL) ENGINE=INNODB CHARACTER SET= utf-8;

[保存]ボタンを押すとデータが入力されますが、MySqlでは???が表示されます グジャラート語のテキストの代わりに。

英語のデータを入力すると、正常に動作します..

4

2 に答える 2

1

コードを少し変更するだけです。これを試して。

httppost.setEntity(new UrlEncodedFormEntity(postParameters,HTTP.UTF_8));

それが役に立てば幸い

于 2013-02-14T05:56:09.743 に答える
0

PHP スクリプトでチャーター エンコーディングを設定する必要があります。

ini_set('default_charset', 'utf-8');

上記のコード行を php スクリプトに追加します。

于 2012-08-20T06:31:48.067 に答える