Я знаю, что есть много вопросов по этому поводу. Я перепробовал много вещей, но я не мог это исправить. Возможно, мне не удалось выполнить решения из-за моих ограниченных знаний?
Я выбираю данные из базы данных MySQL и использую функцию json_encode (). Это работает, за исключением данных, которые содержат специальные символы (турецкий). Для этих значений json возвращает ноль. Как я могу это исправить?
Вот мой простой PHP-код:
<?php
require('init.php');
$sql="SELECT * FROM tablename;";
$result=mysqli_query($con,$sql);
$response=array();
while($row=mysqli_fetch_array($result)){array_push($response,array("X"=>$row["x"],"Y"=>$row["y"]));
}
echo json_encode($response);?>
в mysql столбцы установлены на utf8-турецкий. Я пробовал такие вещи, как установка заголовков, вызов некоторых функций, воссоздание php-файлов в кодировке utf8 и т. Д., Но ни одна из них не сработала.
Использование функции mysqli_set_charset в моем скрипте соединения решило проблему. Не удалось найти это по схожим вопросам. Спасибо пользователю «RiggsFolly».
добавлять TRUE
: json_decode($string, TRUE);
Это даст вам символы utf8 вместо escape-последовательностей Unicode (например, \u00d6
).
Тебе нужно utf8
(или же utf8mb4
) в соединении, в таблице и в HTML. Увидеть этот.