2012-02-14 1 views
0

다음 코드로 외부 URL에서 파일 (.csv 파일)을 다운로드하고 있습니다.C# .net을 사용하여 MemoryStream에서 다운로드 한 CSV 파일을 읽으려면 어떻게해야합니까?

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

다운로드 변수에는 데이터가 채워지지만 내 문제는 실제로 해당 데이터를 읽는 중입니다. 나는 다음을 시도했다 :

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

이 유형과 다른 모든 인코딩 유형은 내가 필요로하는. 아무도 나 한테 어떻게하는지 말해 줄 수 없어?

+3

CSV 파일의 인코딩은 무엇입니까? – Oded

+0

그게 그냥, 나도 몰라, 그리고 나는 그들을 모두 시도하고 그들은 여전히 ​​나를 횡설수설주고있다. –

+2

그런 다음 CSV 제공 업체에 문의하여 요청해야합니다. – Oded

답변

0

기본 시스템 코드 페이지 (Encoding.Default)로 파일 데이터를 읽는 중입니다. 해당 인코딩의 파일이 이 아니고 인 것으로 나타납니다.

은 파일을 성공적으로 읽기 위해 인코딩 된 인코딩을 사용해야합니다.

유니 코드 (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++을 사용합니다.