Заголовок PHP для xml с utf-8
Я использую функцию header(), чтобы превратить файл в стандарт XML.
Проблема в том, что я использую <?php header("Content-type: text/xml; charset=utf-8")
;? > он просто отображает <?xml version="1.0"?>
без привязки/кодировки. Я использую его неправильно?
Ответы
Ответ 1
Функция header()
просто изменяет заголовки HTTP. Выставляемый вами код устанавливает заголовок Content-Type
, что важно для того, чтобы сообщать обозревателям и другим клиентам, какой тип файла вы обслуживаете.
Строка <?xml version="1.0"?>
, о которой вы говорите, является частью самого документа и не затрагивается заголовками HTTP.
В ваших тегах говорится, что вы используете DOM для создания своего XML-документа. Если вы измените конструктор DomDocument, чтобы передать кодировку,
$doc = new DomDocument('1.0', 'UTF-8');
Он должен выводить эту кодировку в документе XML.
Ответ 2
header
просто устанавливает заголовок HTTP в результате. PHP не делает ничего другого со значением, поэтому вам нужно убедиться, что он правильно используется.
Если вы используете XML-библиотеку для генерации своего XML (включая пролог), проверьте документацию для этой библиотеки. Если вы выводите XML "вручную" (o, вам нужно добавить необходимый атрибут в пролог самостоятельно.
Ответ 3
Вы также можете использовать
<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>