PHP. Как добиться записи кириллицы в файл .docx при использовании библиотеки PHPWord?

Всем привет!

  1. Есть объект SimpleXMLObject: $al->{'response'}->results->grouping->group[0]->doc->title->hlword[0];

  2. В нем лежит слово "Почему" на русском. Хочу записать это слово в файл .docx, генерируемый библиотекой PHPWORD. Пишу в коде: $section->addText($al->{'response'}->results->grouping->group[0]->doc->title->hlword[0]);

  3. В получившемся файле появляются кракозябры, как при ошибке кодировки.

Мои действия:

  1. Вывел в тот же файл, той же библиотекой другой элемент массива объектов:

    $section->addText($al->{'response'}->results->grouping->group[0]->doc->url);

Там лежат латиноязычные ссылки - файл Word корректно отобразил англоязычные ссылки.

  1. Вывел в браузер русскоязычный элемент с функцией определения кодировки:

var_dump(mb_detect_encoding($al->{'response'}->results->grouping->group[0]->doc->title->hlword[0]))

Он ее определил как UTF-8.

  1. Написал с помощью функции addText() из арсенала библиотеки русскоязычное слово напрямую:

    $section->addText("Привет!");

Слово корректно записалось и читается в Word.

  1. Подумал, что PHPWord "не знает" русский язык, но коды, предложенные в документации не срабатывают: https://phpword.readthedocs.io/en/latest/general.html

  2. Выполнил в консоли команду:

    echo (string)$al->{'response'}->results->grouping->group[0]->doc->title->hlword[0];

Вышло вот что:

введите сюда описание изображения

В узле hlword[0] действительно лежали слова "Почему" и "Существует" - существует достается на следующей итерации.


Ответы (0 шт):