Как решить проблемы кодирования PHP?

PHP

Если вы когда-нибудь работали с json в php..может быть, вы столкнулись с некоторыми проблемами с функцией json_encode ().

Поэтому в этом гайде я хотел бы поделиться двумя проблемами, с которыми столкнулся:

Первая проблема, когда json_encode возвращает недопустимый код в chrome,но при этом хорошо работает с firefox или другими браузерами.

Ответ : перейдите в notepad++ , выберите меню «Encoding», затем «Encodein UTF-8 without BOM» или с помощью phpstorm перейдите в “file”,а затем удалите bom

Вторая проблема с функцией jeson_encode, возвращающей недопустимый код при попытке преобразовать массив, содержащий специальные символы или html-теги .

Ответ : используйте второй параметр для добавления констант для определения и преобразования этих тегов:

  • $a = array(‘<foo>’,» ‘bar'»,’ «baz»‘,’&blong&’, «\xc3\xa9»);
  • echo «Normal: «, json_encode($a), «\n»;
  • echo «Tags: «, json_encode($a, JSON_HEX_TAG), «\n»;
  • echo «Apos: «, json_encode($a, JSON_HEX_APOS), «\n»;
  • echo «Quot: «, json_encode($a, JSON_HEX_QUOT), «\n»;
  • echo «Amp: «, json_encode($a, JSON_HEX_AMP), «\n»;
  • echo «Unicode: «, json_encode($a, JSON_UNESCAPED_UNICODE), «\n»;
  • echo «All: «, json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS
  • | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), «\n\n»;

Кроме того, если вы хотите отследить ошибки json и не знаете, откуда они берутся, вы можете использовать json_last_error с json_last_error_msg для отображения и отслеживания ошибки. Чтобы абсолютно раз и навсегда убедиться, что у вас больше никогда не будет проблем с кодированием — используйте UTF-8 везде и на всем!

Установите для всех таблиц в вашей базе данных параметры сортировки «utf8_general_ci». Как только вы установите соединение с базой данных, выполните следующий SQL-запрос: «SETNAMES ‘utf8′» Убедитесь, что настройки вашего редактора настроены на кодировку UTF-8. Имейте следующий мета тег в разделе ваших HTML документов:

<meta http-equiv=»content-type» content=»text/html; charset=utf-8″>

Когда вы используете PHP для манипулирования строками, используйте многобайтовые функции.
Вы можете просто использовать один простой файл конфигурации на стороне сервера, который позаботится обо всех кодировках.

В этом случае вам вообще не понадобятся заголовочные и/или мета-теги или модификация файла php.ini. Просто добавьте нужную кодировку набора символов в файл .htaccess и поместите его в корневой каталог www. Если вы хотите возиться со строками набора символов и использовать для этого свой php — код-это совсем другая история. Конечно, параметры сортировки базы данных должны быть правильными.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector