0

У меня есть греческий сайт и все сообщения в нем выглядит Sourse как:Как конвертировать HTML объекты греческого языка на фактические символы в PHP

<p>&Omicron; &Mu;&pi;&#972;&nu;&omicron;&upsilon;&sigmaf; &Gamma;&#973;&rho;&omicron;&sigmaf; Drunken Clam &theta;&alpha; &delta;&epsilon;&#943;&tau;&epsilon; &theta;&alpha; &epsilon;&#943;&nu;&alpha;&iota; &sigma;&epsilon; &theta;&#941;&sigma;&eta; &nu;&alpha; &kappa;&epsilon;&rho;&delta;&#943;&zeta;&epsilon;&iota; &#972;&sigma;&omicron; 1000&Chi; &tau;&omicron;&upsilon; &sigma;&upsilon;&nu;&omicron;&lambda;&iota;&kappa;&omicron;&#973; &sigma;&tau;&omicron;&iota;&chi;&#942;&mu;&alpha;&tau;&omicron;&sigmaf; &epsilon;&pi;&iota;&lambda;&#941;&gamma;&omicron;&nu;&tau;&alpha;&sigmaf; &epsilon;&#943;&tau;&epsilon; Cleveland, Peter, Quagmire, &kappa;&alpha;&iota;</p> 

На самом деле это выглядит, как это на странице, как это:

& Omicron; Μ π ό ν & omicron; & upsilon; & sigmaf; Γ ύ ρ & omicron; & sigmaf; Пьяный моллюск θ α δ & epsilon; ί τ & epsilon; θ α & epsilon; ί ν α ι σ & epsilon; θ έ σ η ν α κ & epsilon; ρ δ ί ζ & epsilon; ι ό σ & omicron; 1000 Χ τ & omicron; & upsilon; σ & upsilon; ν & omicron; & lambda; ι κ & omicron; ύ σ τ & omicron; ι χ ή μ α τ & omicron; & sigmaf; & Эпсилон; π ι & lambda; έ γ & omicron; ν τ α & sigmaf; & Эпсилон; ί τ & epsilon; Кливленд, Питер, Болото, κ α ι

мне нужно изменить HTML сущности к реальным символам (я использую кодировку UTF-8.) Кажется html_entity_decode() не делает этого. Здесь есть какая-либо библиотека или somenthing, как это для меня, чтобы иметь возможность конвертировать текст в реальные символы.

PHP версия PHP 5.3.29

Спасибо!

Upadate: Извините, это была моя позорная ошибка. Я перепутал директивы mb_internal_encoding() и 'default_charset' ini, когда отлаживал свою проблему. Так что я просто должен установить кодировку для html_entity_decode работы в качестве третьего параметра:

$decoded = html_entity_decode($str, ENT_COMPAT | ENT_HTML401, "UTF-8"); 

так же, как пишет Шарлотта Дюнуа. Итак, я поставил ее ответ правильно.

+0

В чем проблема с * html_entity_decode() *? Он отлично работает для меня с вашими данными. Можете ли вы объяснить, что не работает для вас? – trincot

+0

Также укажите в своем вопросе, в какой версии PHP вы работаете. – trincot

ответ

2

Если ваши данные закодированы в html (например, с помощью функции PHP htmlentities), вы можете использовать html_entity_decode для его декодирования. Вам может потребоваться задать аргумент charset, если ваш набор символов в php.ini отличается.

https://3v4l.org/Lmt38

Смежные вопросы