При попытке получить символы с диакритическими знаками из базы данных с кодировкой latin1_swedish_ci и закодировать их в JSON с помощью json_encode(), результат может быть неожиданным. Предполагаемый результат, например «Abord â Plouffe», преобразуется в «null», что делает закодированный JSON недействительным.
Чтобы решить эту проблему, необходимо явно закодировать полученные значения в UTF-8 перед применение json_encode(). Это гарантирует, что выходные данные JSON будут содержать правильные символы UTF-8 и будут проверены соответствующим образом. Вот как реализовать это решение:
// Initialize an empty array for the encoded result set
$rows = array();
// Iterate over the PHPMyAdmin result set
while ($row = mysql_fetch_assoc($result)) {
// Apply UTF-8 encoding to each row value
$rows[] = array_map('utf8_encode', $row);
}
// Output the encoded $rows
echo json_encode($rows);
В этом модифицированном коде мы используем функцию array_map для применения utf8_encode к каждому элементу каждой строки в наборе результатов. Это гарантирует, что все символы будут правильно закодированы в UTF-8 перед выполнением json_encode. Следовательно, результирующий вывод JSON будет точно отражать предполагаемые символы, сохраняя символы с диакритическими знаками по желанию.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3