Вы видите, что текст заменяется на HTML-сущности Обычно это результат того, что текст поступает непосредственно из источника HTML (либо форма с текстом, который ранее был преобразован в htmlentities
или другой источник).
Идеальное решение здесь состоит в том, чтобы гарантировать, что текст не будет получен как закодированный объект HTML, однако, если это не вариант (который он очень часто не использует), вы можете использовать:
$decoded = html_entity_decode($text);
для декодирования сущностей в их действительные символы перед их вставкой.
Немного мелочей:
На самом деле вам не нужно кодировать все символы вих соответствующие объекты для отображения в HTML, если вы правильно отправляете текст Unicode.Вот почему PHP имеет 2 разные функции htmlspecialchars
и htmlentities
, где первая функция кодирует только то, что необходимо кодировать, чтобы не нарушать HTML (эти 5 символов перечислены вmanual, <,>, &, "и '), а второй кодирует все на основе связанной таблицы.