Проблема при парсинге XML через expat

Giber

Новичок
Проблема при парсинге XML через expat

При парсинге xml через expat (кодировка UTF-8), при попадании на западноевропейские символы парсер неверно реагирует и генерирует событие посередине текста. Версия PHP - 5.1.6. К сожалению не удалось ничего найти в инете по этой проблеме. Если кто-то сталкивался с похожей проблемой и смог решить - помогите pls.
 

phprus

Moderator
Команда форума
Giber
А чем западноевропейские символы в кодировке UTF-8 отличаются от не западно-европейских символов с точки зрения парсера? Ты уверен, что у тебя XML в кодировке UTF-8 ? У тебя кодировка UTF-8 прописана в заголовке файла или ты ее указываешь в виде параметра к xml_parser_create?

и генерирует событие посередине текста
Вообщето expat не гарантирует, что каждый узел будет разобрал на один проход. вполне возможно, что на длинный текстовый узел функция-обработчик будет вызвана несколько раз.
 

Giber

Новичок
В заголовке XML прописан UTF-8.
В качестве параметра также его явно указывал.
Западно-европейские символы имеют длину более 1-го байта в этом случае.
Текст внутри тега очень короткий - одно два слова. Видимо прийдется решать проблему переводом в 1 байтовую кодировку, а после парсинга обратно. Хотя не хотелось бы так делать, потому что время выполнения очень критично.
 
Сверху