2014-02-20 27 views
0

我在解析阿拉伯文字到mysql數據庫時遇到了一些問題。這是我做的:從android應用程序到mysql數據庫的阿拉伯文字

  1. 從應用

    解析文本到PHP腳本

    String address = ListActivity.urlZapis; 
    try { 
        address +="?lp=" + detal.lp + "&date=" + detal.date + "&name=" + URLEncoder.encode (detal.name, "UTF-8"); 
    } catch (UnsupportedEncodingException e1) { 
        e1.printStackTrace(); 
    } 
    
    try { 
    URI uriAddress = new URI(address.replace(" ", "%20")); 
    address=uriAddress.toString(); 
    DefaultHttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost(address); 
    
    httpClient.execute(httpPost); 
    
    } catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } catch (URISyntaxException e) { 
    e.printStackTrace(); 
    } 
    
  2. 在php文件我連接到MySQL和發送數據

$連接= mysqli_connect(「$ host」,「$ username」,「$ password」, 「$ db_name」);

if(mysqli_connect_errno($connect)) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

mysql_query("SET NAMES 'utf8'"); 
mysql_query("SET CHARACTER SET 'utf8'"); 

然後,我看到這樣的事情在我的phpmyadmin: 名字 - U ...اكرÙÙŠÙÙÙƒÙÙ「ار ,而不是阿拉伯文字。 mysql的排序規則設置爲utf8_general_ci。 當我通過phpmyadmin輸入阿拉伯語文本時,一切正常。它正確顯示在我的應用程序中,所以我確信將它發送到數據庫時出現了問題。

回答

0

如果你使用eclipse:

右鍵點擊你的項目上單擊右鍵。轉到屬性 - >資源--->文本文件編碼--->其他 - > UTF-8

+0

一切都沒有改變 – Lukis

+0

至少你做了好事到項目 – Behnam

2

您需要將您的POST編碼爲utf-8,並且您的mysql也是utf-8。並且不要使用UTF-8創建php腳本,只需使用notepad創建它即可。

public JSONObject makeHttpRequest(String url, String method, 
     List<NameValuePair> params) { 

    // Making HTTP request 
    try { 

     // check for request method 
     if(method == "POST"){ 
      // request method is POST 
      // defaultHttpClient 

      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(url); 
      httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8")); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 
0

我發現它沒有工作的原因! 我有:

$connect = mysqli_connect("$host", "$username", "$password", "$db_name"); 

然後

mysql_query("SET NAMES 'utf8'"); 

這是越野車,引起第一我使用mysqli_connect然後的mysql_query(未mysqli_query)。

0

試試這個

@header('Content-Type: text/html; charset=utf-8'); 


mysql_query("SET NAMES 'utf8'"); 

mysql_query("SET CHARACTER SET utf8"); 

mysql_query("SET SESSION collation_connection = 'utf8_unicode_ci'"); 

Befor

$result = mysql_query("SELECT * FROM ") or die(mysql_error()); 
相關問題