Данные шрифта урду / арабского из MySQL отображаются как ????? в JSON

Я занимаюсь разработкой приложения для 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);
?>

Поля Имя и Столица — это те, в которых я храню свои данные на урду.

Пожалуйста, помогите мне решить эту проблему.

Благодарю.

0

Решение

Вам просто нужно изменить Charset на UTF8, и вы можете использовать эти строки для PHP, чтобы сделать это:

$statSQL= 'SET CHARACTER SET utf8';

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

Надеюсь это поможет 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]