![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
mihryak |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
При попытке чтения из XmlReader'а выбрасывается исключение There is no Unicode byte order mark. Cannot switch to Unicode.
Исключение обоснованное - данные в формате UTF8, BOM отсутствует, в декларации документа
Пробовал выставить в настройках ридера
Данные поступают в виде byte[], в ряде случаев в ZGip'ованном формате, предварительно раззиповывать нельзя, как и использоваться DOM (с ним, к слову, всё нормально загружается). Можно ли как-нибудь настроить XmlReader, чтобы он смог проглатывать мои данные? И дополнительная проблема - нужно ещё настроить XmlWriter так, чтобы он этот BOM не записывал в начало. |
||||
|
|||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
mihryak, ищите да обрящете: http://www.google.ru/search?q=%22There+is+...lient=firefox-a
|
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
Idsa, я бы приложил скрин моего огнелиса, где все ссылки с первых страниц цвета Visited
![]() увы, нету там подходящего ответа проблема не столько в том, как это можно побороть любым способом - тот же DOM решает проблему, считывание декларации и подмена 16 на 8, удаление этой проклятой строки, куча прочих вариантов - но ни один из них не удовлетворяет требованиям а они просты - отсутствие дополнительных буферов и предварительной раззиповки, т.е. из стрима нужно данные передавать прямо в ридер ещё такой момент - эта декларация может вообще отсутствовать, поэтому предварительно "вычитать" её тоже не получится :( Это сообщение отредактировал(а) mihryak - 30.6.2008, 19:42 |
|||
|
||||
altarvic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 2.3.2007 Репутация: 1 Всего: 1 |
XmlParserContext ?
|
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
altarvic, не помог
Encoding оттуда попадает в поле reportedEncoding класса XmlTextReaderImpl, но при первом вызове Read первоначальное значение поля parsingFunction = ParsingFunction.SwitchToInteractiveXmlDecl, что вызывает в свою очередь парсинг декладации и выкидывание исключения самое забавное, что этот первый парсинг в конце концов приводит к присваиванию reportedEncoding ![]() |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
если кому-нибудь интересно - проблема решена с помощью StreamReader'а
т.е. сначала он создаётся на основе Stream'а с заданной кодировкой, а потом передаётся XmlReader'у |
|||
|
||||
altarvic |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 2.3.2007 Репутация: 1 Всего: 1 |
т.е BOM вручную прописываешь?
а с XmlWriter'ом решилось? |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
не-а, не прописываю, как оказалось, XmlReader вполне доверяет StreamReader'у в вопросах кодировки =)
а с XmlWriter'om решилось вообще просто
false в параметрах как раз отвечает за то, будет ли энкодинг предоставлять BOM |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |