powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отсутствует метка порядка байт в Юникоде.
8 сообщений из 8, страница 1 из 1
Отсутствует метка порядка байт в Юникоде.
    #38670089
hanko_nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро! Пытаюсь прочесть xml

Код: c#
1.
2.
3.
4.
5.
6.
XmlTextReader reader = new XmlTextReader(@"F:\Release\in\20140611\59.100");

while (reader.Read())
{
...
}



Сам файл выглядит так:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<?xml version="1.0" encoding="utf-16"?>
<eventStatusResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fpmlVersion="5-0" actualBuild="4" xmlns="http://www.nprts.ru/repository/fpml-5.4">
  <header>
    <messageId>0</messageId>
    <inReplyTo>533928</inReplyTo>
    <sentBy>SPB01</sentBy>
    <sendTo>VICAR</sendTo>
    <creationTimestamp>2014-06-11T16:38:10.2529632+04:00</creationTimestamp>
  </header>
  <statusItem xsi:type="EventStatusItemNsd">
    <eventIdentifier>
      <tradeIdentifier id="">
        <tradeId>352301</tradeId>
        <partyReference href="Party1" />
      </tradeIdentifier>
    </eventIdentifier>
    <status>REGISTERED_FOR_NETTING</status>
    <confirmationParty href="ReporterParty" />
  </statusItem>
  <party id="Party1">
    <partyId>VICAR</partyId>
    <partyName>test</partyName>
  </party>
  <party id="Party2">
    <partyId>VICAR</partyId>
    <partyName>test</partyName>
  </party>
</eventStatusResponse>



Кодировка файла UTF-8 w/o BOM, если поменять encoding на UTF-8, то все читается хорошо, иначе ошибка в теме. Как выйти из ситуации? Какие есть варианты? Заранее спасибо!
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670108
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hanko_nikita,

получить корректный файл(в бубен автору надавать)
чтоб реальная кодировка файла соответствовала декларации
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670156
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топорный способ -- string.Replace()
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670195
hanko_nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нахлобуч,

Так и решил эту проблему, надеюсь временно, плюс написал источнику файла...
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670392
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hanko_nikita,

Можно сделать изящнее - прочитать файл в стринг, потом ридером читать из стринга:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
string xdata;
using (var fs = new FileStream(@"F:\Release\in\20140611\59.100", FileMode.Open))
using(var sr = new StreamReader(fs))
  xdata = sr.ReadToEnd();
using(var sr = new StringReader(xdata))
using(var xr = new XmlTextReader(sr))
  while(xr.Read())
  {
    ...
  }
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670617
hanko_nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны,

Спасибо за изящное решение) все работает! А как можно реализовать подобный алгоритм, только прочитать не из файла, а из byte[]
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670644
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hanko_nikita,

Код: c#
1.
Encoding.GetEncoding("UTF-8").GetString(b)


или
Код: c#
1.
new StreamReader(new MemoryStream(b), Encoding.GetEncoding("UTF-8"));
...
Рейтинг: 0 / 0
Отсутствует метка порядка байт в Юникоде.
    #38670684
hanko_nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

спасибо, реализовал
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Отсутствует метка порядка байт в Юникоде.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]