2017-01-17 4 views
0

私は、Webサーバー上のMySQLデータベースにUrdu/Arabicデータストアを持つAndroidアプリを開発しています.JSON_Encodingを使用してJSON文字列を生成しています。 JSON文字列は、さまざまな機能(RecyclerViewやその他のビューオブジェクトにデータを設定)を実行するためにAndroidアプリで使用されています。私は、ウルドゥー語/アラビア語のデータをMySQLデータベースに格納することができますが、PHPスクリプトを使用してJSONを生成すると、ウルドゥー語の文字を含むすべてのフィールドにデータが表示されます。MySQLのウルドゥー語/アラビア語のフォントデータが????? in JSON

私はutf8mb4_unicode_ciを使っていましたが、英語以外のデータを格納したり、複数の機能を実行するのは簡単ですが、このエンコーディングの問題の後、MySQLデータベースのすべてのテーブルとフィールドに対してutf8_general_ciに変更しました。以下は、私は、MySQLからJSON文字列を生成するために使用していますPHPスクリプトです:

<?php 

require "conn.php"; 

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

$sql_qry = "SELECT * FROM countrybasic;"; 

$result = mysqli_query($conn, $sql_qry); 

$response = array(); 

while($row = mysqli_fetch_array($result)){ 
    array_push($response, array("id"=>$row[0],"name"=>$row[1],"capital"=>$row[2],"continent"=>$row[3],"population"=>$row[4],"gdp"=>$row[5])); 
} 

echo json_encode(array("server_response"=>$response)); 

mysqli_close($conn); 
?> 

名及び資本金のフィールドは私が私のウルドゥー語のデータを保存するものです

この問題を解決するために私を助けてください。 。

ありがとうございました。

+0

が、それは今働いている願っていますか? – msk

+0

いいえ、まだ同じです。テキストは???? –

答えて

0

あなただけUTF8に文字セットを変更する必要があり、あなたはそれを行うにはPHPのためにこれらの行を使用することができます。

$statSQL= 'SET CHARACTER SET utf8'; 

mysqli_query($your_db,$sSQL) 
or die ('charset in DB didn\'t change'); 

私は、このヘルプ:)

+0

パーフェクト!私はクエリとフィールドの文字セットを設定しようとしていました。私にConnectionオブジェクトのためにそれを設定することはありませんでした。本当にありがとう! :) –

+0

私は助けてうれしいです...答えとして市場に出すことを忘れないでください:D – MohammedAlSafwan

関連する問題