Как конвертировать \ u009 - PullRequest
       74

Как конвертировать \ u009

0 голосов
/ 19 февраля 2020

я пытаюсь преобразовать Ba \ u009aka Voda в правильные символы, используя html_entity_decode

    echo html_entity_decode("Ba	aka Voda\n", ENT_COMPAT);
    echo html_entity_decode("Ba	aka Voda\n", ENT_QUOTES );
    echo html_entity_decode("Ba	aka Voda\n", ENT_QUOTES, 'UTF-8');
    echo html_entity_decode("Ba	aka Voda\n", ENT_NOQUOTES);
    echo html_entity_decode("Ba	aka Voda\n", ENT_HTML401);
    echo html_entity_decode("Ba	aka Voda\n", ENT_XML1);
    echo html_entity_decode("Ba	aka Voda\n", ENT_XHTML);
    echo html_entity_decode("Ba	aka Voda\n", ENT_HTML5);

Ответ всегда:

Ba aka Voda

ожидаемый результат должен быть: Башка Вода

что я делаю не так?

1 Ответ

0 голосов
/ 19 февраля 2020

Используйте mb_convert_encoding() в сочетании с preg_replace_callback():

$input = "Baška Voda";

$output = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $input);


echo $output; // Baška Voda
...