Проблема с кодировкой при попытке генерирования xml-документа из таблицы mysql.

ZhekaNerush

Новичок
Проблема с кодировкой при попытке генерирования xml-документа из таблицы mysql.

PHP 5.1.4, MySQL 5.0.22

Есть таблица HELP, кодировка по умолчанию latin1.

/*===============================*/
/* Table: HELP */
/*===============================*/
create table HELP
(
HLP_ID smallint not null auto_increment,
HLP_HD varchar(200)
primary key (HLP_ID)
)
type = MyISAM;

Нужно получить xml-документ в кодировке cp1251 на основе данных таблицы HELP.

1. Задаю переменные сесии mysql:
--
mysql_query("SET SESSION character_set_client=cp1251");

mysql_query("SET SESSION character_set_connection=cp1251");

mysql_query("SET SESSION character_set_results=cp1251");

mysql_query("SET SESSION character_set_server=cp1251");

2. Создаю документ xml:
--
$this->xml = new DOMDocument("1.0","cp1251");

$this->xmlRoot = $this->xml->createElement("root");

while($this->tmpResult = mysql_fetch_array($this->queryResult)){

$this->xmlItem = $this->xml->createElement("item");

$this->xmlItem->setAttribute("id", $this->tmpResult["HELP_ID"]);

$this->xmlItem->appendChild($this->xml->createElement("head",$this->tmpResult["HELP_HD"]));

$this->xmlRoot->appendChild($this->xmlItem);

$this->tmpResult = mysql_fetch_array($this->queryResult)
}

$this->xml->appendChild($this->xmlRoot);

$this->xml->saveXML();

$this->xml->save("test.xml");

3. На выходе получаю:
--
<?xml version="1.0" encoding="cp1251"?>
<root>
<item id="1">
<head>?? ????????? ? ??????? ????????</head>
</item>
<item id="2">
<head>???????? ???????? ABC ?? ????????? </head>
</item>
<item id="3">
<head>????? xyz ??? ??????? ?? ????????? </head>
</item>
</root>

Что я не так делаю, что бы получить даные в кодировке cp1251 ?

P.S. Смена кодировки таблицы HELP с latin1 на cp1251 результат на выходе не изменила.

Помогите....:confused:
 

Scud

Новичок
Код:
$this->xml = new DOMDocument("1.0","cp1251");
Это ты DOM'у говоришь что выходная кодировка будет cp1251, т.е. при SaveXML он тебе сохранит в cp1251. А при формирования DOM всегда все данные надо передовать в UTF-8, так что iconv или mbstring тебе в руки, а вообще вопрос в форуме возникает раз в месяц точно, пользуй поиск.
 
Сверху