Я занимаюсь разработкой приложения для Android с хранилищем данных на урду / арабском языке в базе данных MySQL на моем веб-сервере и использую JSON_Encoding для генерации строки JSON. Строка JSON затем используется в приложении Android для выполнения различных функций (заполнение RecyclerView и других объектов представления данными). Я могу хранить данные на урду / арабском языке в базе данных MySQL, но когда я использую скрипт PHP для генерации JSON, все поля, содержащие символы урду, отображают данные как ??????
Я использовал utf8mb4_unicode_ci, когда читал, что это легко для хранения неанглийских данных и выполнения нескольких функций, но после этой проблемы с кодированием я изменил это на utf8_general_ci для всех таблиц и полей в базе данных MySQL. Ниже приведен скрипт PHP, который я использую для генерации строки JSON из MySQL:
<?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);
?>
Поля Имя и Столица — это те, в которых я храню свои данные на урду.
Пожалуйста, помогите мне решить эту проблему.
Благодарю.
Вам просто нужно изменить Charset на UTF8, и вы можете использовать эти строки для PHP, чтобы сделать это:
$statSQL= 'SET CHARACTER SET utf8';
mysqli_query($your_db,$sSQL)
or die ('charset in DB didn\'t change');
Надеюсь это поможет 🙂
Других решений пока нет …