PHP заголовок для xml с utf-8 - PullRequest
14 голосов
/ 06 марта 2011

Я использую функцию header () , чтобы превратить файл в стандарт XML. Проблема в том, когда я использую <?php header("Content-type: text/xml; charset=utf-8"); ?> он просто отображает <?xml version="1.0"?>, без enconding / charset. Я использую это неправильно?

Ответы [ 3 ]

13 голосов
/ 06 марта 2011

Функция header() просто изменяет заголовки HTTP.Размещенный вами код устанавливает заголовок Content-Type, который важен для сообщения браузерам и другим клиентам, какой тип файла вы обслуживаете.

Строка <?xml version="1.0"?>, о которой вы говорите, является частью документа.сам по себе, и не зависит от заголовков HTTP.

Ваши теги говорят, что вы используете DOM для создания своего XML-документа.Если вы измените конструктор DomDocument так, чтобы он также передавал кодировку,

$doc = new DomDocument('1.0', 'UTF-8');

Он должен вывести эту кодировку в XML-документе.

2 голосов
/ 06 марта 2011

header просто устанавливает заголовок HTTP в результате.PHP ничего не делает со значением, поэтому вам нужно убедиться, что оно используется правильно.

Если вы используете библиотеку XML для генерации XML (включая пролог), проверьтедокументация для этой библиотеки.Если вы выводите XML «вручную» (o, вам нужно добавить необходимый атрибут в пролог.

0 голосов
/ 20 октября 2015

Вы также можете использовать

<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...