#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 в эти дни.