xml parser кодировка

D.K.M.

Новичок
xml parser кодировка

Получаю данные из файла xml - кодировка encoding="windows-1251"

PHP:
$parser= xml_parser_create();
xml_parse_into_struct($parser, $xml, $data_ar);
получаю красивую кодировку UTF8.

А я хочу 1251 ! Переккодировка вручную теряет некоторые символы (коверкует, заменяет один символ на два и т.д.).

что можно сделать?
 

manwithnoname

Новичок
The optional encoding specifies the character encoding for the input/output in PHP 4. Starting from PHP 5, the input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 4, the default output encoding is the same as the input charset. If empty string is passed, the parser attempts to identify which encoding the document is encoded in by looking at the heading 3 or 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.

php.net
 

D.K.M.

Новичок
Уже вдоль и поперек перечитал доку...

Это я знаю.
Кстати если сделать вот так:

$parser= xml_parser_create('ISO-8859-1');
xml_parse_into_struct($parser, $xml, $data_ar);

получаю вообще кракозябли.

-~{}~ 06.09.06 01:37:

на 4 PHP это незаработало бы!

$text = iconv('UTF-8', 'CP1251', $data_ar[$i]["value"]);

Сейчас (PHP5.0.2 и выше) работает на 100% - все символы на месте!

тема закрыта. Всем спасибо.
 
Сверху