Проблема с кодировкой PHP hindii

#php #wordpress #powerpoint #encode

#php #wordpress #powerpoint #кодировать

Вопрос:

Мой пользовательский плагин WordPress получает содержимое публикации из базы данных на языке хинди. Я создаю текстовый файл, подобный этому:

 header("Content-Type: text/plain; charset=utf-16le");
header('Content-Disposition: attachment; filename="'. $file_base .'-'. $post_date .'.txt"');

echo $text;
 

Когда я импортировал текстовый файл в PowerPoint 2007, он отображается следующим образом:

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

Но если я открою текстовый файл с помощью текстового редактора Windows, а затем сохраню в формате UTF-16LE. Затем PowerPoint читает это правильно.

Я потратил день на поиск решения, но потерпел неудачу. В чем может быть проблема?

Комментарии:

1. Действительно ли ваш контент хранится в UTF-16LE в вашей базе данных MySQL?

2. @Dai я не совсем уверен. Я думаю, что это должен быть UTF-8, потому что это WordPress по умолчанию.

3. Установлен ли шрифт в PowerPoint на тот, который включает символы хинди? В качестве теста попробуйте Arial Unicode, если он у вас установлен.

4. @SteveRindsberg Я не думаю, что это проблема со шрифтом — Windows (и Office) будут использовать резервные шрифты и символы, смотрите Здесь: docs.microsoft.com/en-us/globalization/input /… — Учитывая, что MySQL по умолчанию latin1 имеет значение и что PHP передает байты в строках дословно, а сценарий OP утверждает, что это UTF-16LE, тогда этомоя теория.

5. @G’Ofurn Почему вы открываете текстовый файл в PowerPoint вместо Блокнота? Wnd почему вы используете UTF-16LE в качестве значения заголовка, когда вы не опубликовали никакого PHP-кода, который показывает, что вы на самом деле используете UTF-16LE? Как вы сказали, WordPress использует UTF-8 (а MySQL использует latin1 по умолчанию), поэтому вам нужно исследовать как минимум 3 вещи, и в любом случае никто не должен использовать UTF-16 в эти дни.