PHP. Как добиться записи кириллицы в файл .docx при использовании библиотеки PHPWord?
Всем привет!
Есть объект SimpleXMLObject: $al->{'response'}->results->grouping->group[0]->doc->title->hlword[0];
В нем лежит слово "Почему" на русском. Хочу записать это слово в файл .docx, генерируемый библиотекой PHPWORD. Пишу в коде: $section->addText($al->{'response'}->results->grouping->group[0]->doc->title->hlword[0]);
В получившемся файле появляются кракозябры, как при ошибке кодировки.
Мои действия:
Вывел в тот же файл, той же библиотекой другой элемент массива объектов:
$section->addText($al->{'response'}->results->grouping->group[0]->doc->url);
Там лежат латиноязычные ссылки - файл Word корректно отобразил англоязычные ссылки.
- Вывел в браузер русскоязычный элемент с функцией определения кодировки:
var_dump(mb_detect_encoding($al->{'response'}->results->grouping->group[0]->doc->title->hlword[0]))
Он ее определил как UTF-8.
Написал с помощью функции addText() из арсенала библиотеки русскоязычное слово напрямую:
$section->addText("Привет!");
Слово корректно записалось и читается в Word.
Подумал, что PHPWord "не знает" русский язык, но коды, предложенные в документации не срабатывают: https://phpword.readthedocs.io/en/latest/general.html
Выполнил в консоли команду:
echo (string)$al->{'response'}->results->grouping->group[0]->doc->title->hlword[0];
Вышло вот что:
В узле hlword[0] действительно лежали слова "Почему" и "Существует" - существует достается на следующей итерации.
