Теряется charset для xml файла

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 28 марта 2011 в 23:48

Например такой код

<?php

function generate_xml() {

$data '<?xml version="1.0" encoding="utf-8"?>' PHP_EOL
$data .= '<categories>' PHP_EOL;
$data .= '<category>'PHP_EOL;
$data .= '<item1>' $name1 '</item1>' PHP_EOL;
$data .= '<item2>' $name1 '</item2>' PHP_EOL;
$data .= '<item3>' $name1 '</item3>' PHP_EOL;
$data .= '</category>' PHP_EOL;
$data .= '</categories>' PHP_EOL;

  

drupal_set_header("Content-type: application/xhtml+xml; charset=utf-8");

  

// пробовал также header();
  
  
$save file_save_data($data$destFILE_EXISTS_REPLACE);
  if (
$savedrupal_set_message('Saved!''status'); 
  
  [
user=chmod]chmod[/user]($dest0664);
}

?>

Вообщем смысл сгенерировать статический XML файл. Всё создаётся, но файл получается невалидный. Вот что говорит валидатор:

«Missing "charset" attribute for "text/xml" document.

The HTTP Content-Type header (text/xml) sent by your web server (nginx) did not contain a "charset" parameter, but the Content-Type was one of the XML text/* sub-types. »

Смотрел заголовок в файрбаге, действительно, не задекларирована кодировка. Грешил на хост, но карта сайта, которая создаётся xmlsitemap проходит валидацию. Также игрался в notepad++ с кодировками файла, в котором генерируется XML

Где делаю неправильно?

Комментарии