2012-02-14 3 views
0

Я загружаю файл, предположительно. CSV-файл, из внешнего URL-адреса со следующим кодом.Как я могу прочитать CSV-файл, который я загрузил из MemoryStream, используя C# .net?

MemoryStream download = new MemoryStream(client.DownloadData(targetUrl)); 

В переменной загружаемых данных данные заселяются, но теперь моя проблема заключается в том, чтобы читать эти данные. Я попытался следующие:

StreamReader dataReader = new StreamReader(download, 
              System.Text.Encoding.Default, 
              true); 

Этот и все другие кодирующие типы пытались вернуть только тарабарщину вместо данных .csv мне нужно. Может ли кто-нибудь сказать мне, как это сделать?

+3

Какая кодировка CSV-файла? – Oded

+0

Это просто вещь, я не знаю, и я пробовал их всех, и они все еще дают мне тарабарщину. –

+2

Затем вам необходимо обратиться к поставщику CSV и спросить их. – Oded

ответ

0

Вы читаете данные файла с помощью системной кодовой страницы по умолчанию (Encoding.Default) - похоже, что в этой кодировке файл не.

Вы, , должны использовать кодировку, в которой файл закодирован, чтобы прочитать его успешно.

Я предлагаю в качестве вероятных вариантов кодировки Unicode (UTF16), UTF8 и ASCII. Если ни одна из них не работает должным образом (то есть, тарабарщина создается), вам нужно узнать исходную кодировку.

StreamReader dataReader = new StreamReader(download, 
              System.Text.Encoding.UTF8, 
              true); 
+0

Encoding.Default никогда не является utf-16, это Encoding.Unicode. По умолчанию используется системная кодовая страница по умолчанию. Как и 1252 на вашем компьютере, кодовая страница Windows по умолчанию на машинах в Западной Европе. Попробуйте просмотреть Encoding.Default.CodePage. –

+0

@ HansPassant - Спасибо за исправление. Я действительно думал о «Encoding.Unicode». – Oded

0

Я бы воспользовался Notepad++, чтобы узнать, какая кодировка используется.

Смежные вопросы