У меня есть греческий сайт, и все сообщения в нем выглядят как:
<p>Ο Μπόνους Γύρος Drunken Clam θα δείτε θα είναι σε θέση να κερδίζει όσο 1000Χ του συνολικού στοιχήματος επιλέγοντας είτε Cleveland, Peter, Quagmire, και</p>
На самом деле это выглядит так на странице:
Σ όπόνους Γύρος Пьяный моллюск θα δείτε θα είναι σε θέση να κερδίζει όσο 1000Χ του συνολικού στοιχήματος ενεκταέ, Квебек, Кливленд
Мне нужно изменить сущности HTML на реальные символы (я использую кодировку UTF-8.)
Кажется, html_entity_decode () не делает этого. Здесь есть какая-нибудь библиотека или что-то подобное, чтобы я мог преобразовывать текст в реальные символы.
PHP версия PHP 5.3.29
Спасибо!
Upadate: Извините, это была моя постыдная ошибка. Я запутался в директивах ini mb_internal_encoding () и default_charset во время отладки моей проблемы. Поэтому мне просто нужно было установить кодировку для работы html_entity_decode в качестве третьего параметра:
$decoded = html_entity_decode($str, ENT_COMPAT | ENT_HTML401, "UTF-8");
как написала Шарлотта Дюнуа.
Поэтому я поставил ее ответ как правильный.
Если ваши данные в кодировке HTML (например, с помощью функции PHP htmlentities
), ты можешь использовать html_entity_decode
расшифровать его обратно. Вам может потребоваться установить аргумент charset, если ваш набор charset в php.ini отличается.
Других решений пока нет …