我做了一個應用程序,從android發送很少的文本輸入到我的在線數據庫。我的應用程序運行良好,但有些用戶報告說他們不能使用阿拉伯文字。所以,我想,當我在數據庫中發送阿拉伯文文本顯示爲????? ????? ??????
從Android手機發送阿拉伯文字到在線MySQl數據庫
我的PHP腳本:
<?php
$connect = mysql_connect($db_host,$db_uid,$db_pass) or die('could not connect');
mysql_select_db($db_name);
if(mysql_errno($connect))
{
die("Failed to connect to MySQL: " . mysql_error());
}
else
{
echo "success";
mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');
}
$name = isset($_POST['name']) ? $_POST['name'] : '';
$sex = isset($_POST['sex']) ? $_POST['sex'] : '';
$nationality = isset($_POST['nationality']) ? $_POST['nationality'] : '';
$query = mysql_query("insert into people (name, sex, nationality) values (N'$name' ,N'$sex', N'$nationality') ", $connect);
print_r($_POST);
if(!$query) echo mysql_error();
mysql_close($connect);
?>
我的Android代碼:
DefaultHttpClient httpclient= new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.xxxxxxxx.com/thescript.php");
Log.e("done 1st","its here");
try
{
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", Name.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("sex", Sex.getText().toString()));
nameValuePairs.add(new BasicNameValuePair("nationality", Nationality.getText().toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
Log.e("done", String.valueOf(response));
}
我試過幾個的東西,你可以看到但沒有工作。
,並使用插入時到使用在線PC .PHP我得到這樣的:لببي
---------
我的數據庫設置爲:
表格整理是utf8_general_ci
及其型是MyISAM
和collumns(姓名,性別,國籍)裏面:
類型是varchar
和覈對是utf8_general_ci
離。 輸出應該是علي
但它???
嘗試從您的瀏覽器插入並再次看到它,如果該檢查沒有問題,請檢查您的Android應用程序。 –
你應該知道這一點比我好,我只是建議的東西,它很容易就 –
我使用的瀏覽器捆綁,並得到這樣的:U「ببي –