Здравствуйте Xenia, Вы писали:
X>Здравствуйте Коваленко Дмитрий, Вы писали:
X>
КД>>На сколько я понимаю UTF-8, при корректном содержимом первоначального XML ты бы не смогла увидеть русские буквы — они были бы двухсимвольными абро-кадабрами.
КД>>Попробуй его отконвертировать через MultiByteToWideChar(CP_ACP,) / WideCharToMultiByte(CP_UTF8,...) и подсунуть полученный текст.
X>Я не совсем поняла что вы имеете в виду под "корректным" xml файлом, и у меня такой еще вопрос — если xml файл был создан (программно) под windows 98, но processing instruction была усатановлена
X>X><?xml version="1.0" encoding="utf-8"?>
X>
X>То в итоге какая там получилась кодировка? может в этом вся проблема.
Давай по-порядку.
encoding="utf-8" означает, что содержимое этого XML определено в кодировке UTF-8. Так?
В этой кодировке символы выше 127 представляются в виде последовательности байт. То есть русские буквы превратятся в "нерусские". Все что ниже 127 останется как есть. То есть английские буквы будут читаемые
В твоем XML русские буквы — читаемые. То есть представлены в кодировке win1251.
Парсер XML, беря твои данные, видит что они в UTF-8 и начинает их конвертировать в UCS-2 — это нормальный 2-х байтный UNICODE. Но UTF-8 это жесткий формат который чувствителен к ошибкам. Русские буквы с кодом >127 однозначно воспринимаются как ошибка и поэтому парсер возвращает ошибку.
Я предлагаю тебе попробовать "руками" переконвертировать твой XML в UTF-8 и подсунуть этот текст серверу. Если пройдет, то будем думать, что делать с твоей (программной) генерацией XML.
CP_UTF8 поддерживается NT4/2000 и выше. Если у тебя их нет под рукой — могу выслать конвертор в исходных текстах (С++)
-- Пользователи не приняли программу. Всех пришлось уничтожить. --