Кодировка JSON и специальные символы
При кодировании массивов с помощью функции json_encode() может случиться так, что элементы, содержащие специальные символы, преобразуются в пустые строки. Такое поведение особенно заметно с такими символами, как символы авторских прав или товарных знаков.
Чтобы решить эту проблему, убедитесь, что все строковые данные имеют кодировку UTF-8, прежде чем кодировать их как JSON. Этого можно добиться, используя array_map() в сочетании с функцией utf8_encode():
$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);
Как отмечено в руководстве по PHP, json_encode() требует, чтобы все строковые данные были в кодировке UTF-8. Кодируя элементы массива в UTF-8 перед кодированием JSON, мы гарантируем правильное представление специальных символов в выходных данных JSON.
Для ясности давайте сравним результаты кодирования массива с UTF-8 и без него. кодировка:
Без UTF-8 Кодировка:
$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}
С кодировкой UTF-8:
$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}
При применении кодировки UTF-8 специальные символы правильно отображаются в выходных данных JSON. Не забывайте последовательно использовать utf8_encode() для правильного кодирования.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3