我正在开发一个示例应用程序,其中有两个文本框,从用户输入。现在我已经创建了一个使用按钮的古吉拉特键盘,这样用户就可以用古吉拉特语输入数据。当用户按下Save按钮时,数据应该存储在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;

当我按下Save按钮时,我的数据被输入,但是在MySql中,我得到了??? 而不是古吉拉特文字。
当我输入英文数据时,它就正常工作了。。

最佳答案

只是你的代码有点变化。
试试这个。

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

希望有帮助

09-06 03:27