我正在我的网络服务器上使用Urdu / Arabic数据存储在MySQL数据库中开发一个Android应用程序,并使用JSON_Encoding生成JSON字符串。然后在Android应用程序中使用JSON字符串来执行各种功能(使用数据填充RecyclerView和其他视图对象)。我能够将Urdu / Arabic数据存储在MySQL数据库中,但是当我使用PHP脚本生成JSON时,包含Urdu字符的所有字段都显示数据为??????
我正在使用utf8mb4_unicode_ci,因为我读到这很容易存储非英文数据并执行多个功能,但在这个编码问题之后,我已经将其更改为utf8_general_ci,用于MySQL数据库中的所有表和字段。下面是我用来从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 :(得分:1)
注意:如果您在排序规则不同时保存数据并在更改排序规则后获取该数据,则该数据将无法正确获取。
我希望这会奏效。
答案 1 :(得分:0)
您只需将Charset更改为UTF8,您就可以使用这些行来完成PHP:
$statSQL= 'SET CHARACTER SET utf8';
mysqli_query($your_db,$sSQL)
or die ('charset in DB didn\'t change');
我希望这有帮助:)
答案 2 :(得分:0)
$CONNECTION = mysqli_connect($host,$user,$password,$database);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query ($CONNECTION ,"set character_set_results='utf8'");
$queryutf8 = "select * from yourtable";
$res_utf8 = mysqli_query($CONNECTION ,$queryutf8 );
答案 3 :(得分:0)
需要更改wamp服务器中默认的utf8 查看以下链接了解更多详情。