2013-08-06 2 views
1

Windows-1255로 인코딩 된 바이트 배열을 가져옵니다.지정된 인코딩으로 열린 CSV 파일을 가져 오는 방법

Encoding enc = Encoding.GetEncoding("Windows-1255"); 
... 
byte[] bytes = enc.GetBytes(result); 

그리고 CSV 파일로 저장하십시오.

CA ÷ AAA

솔루션 : 나는 CSV 파일을 열 때

var str = Encoding.GetEncoding(1255).GetString(bytes); 
using (StreamWriter sw = new StreamWriter("c:\\folder\\file.csv", false, Encoding.GetEncoding(1255))) 
{ 
    sw.Write(str); 
} 

나는 Jibberish를 참조?

+0

** Jibrish **의 예를 게시 할 수 있습니까? – christiandev

+0

저장 코드를 CSV에 게시하십시오. 또한 기존 바이트를 검색하는 방법의 샘플을 게시하십시오. – Aphelion

+0

Windows-1255 인코딩이 요구 사항입니까? CSV를 표준 인코딩으로 저장하면 문제가 해결됩니까? – Pluc

답변

0

설명 후 편집 : 왜 바이트로 인코딩했는지 알지만 바이트를 디코딩 할 필요는 없습니다 ... 결과를 작성하십시오.

다음 코드는 UTF8 또는 Windows-1255를 사용하든 상관없이 잘 작동합니다. 결과 CSV를 메모장에서 열 수 있습니다 + + 또는 Excel.

Encoding encodingOfChoice = Encoding.UTF8; 
byte[] bytes = encodingOfChoice.GetBytes(text); 

using (StreamWriter sw = new StreamWriter("c:\\folder\\folder.csv", 
     false, encodingOfChoice)) 
{ 
    sw.Write(result); 
} 

편집 2 : 이 문제는 정말 올바른 인코딩을 작성하지 않습니다. 그것은 인코딩을 제대로 읽을 수 있도록 열리는 프로그램을 얻는 것입니다. 나는 유니 코드 인코딩을 사용할 때 문자를 제대로 읽을 수 있도록 Excel과 Notepad ++를 얻을 수 있었지만 열에 적절하게 열려면 Excel에서 탭으로 구분해야했습니다.

+0

왜 그런가요? – Nadav

+0

btw, 나중에이 인코딩 된 바이트 배열을 MemoryStream (바이트) 첨부 파일로 보내려고합니다. 인코딩을 포기할 방법이 없습니다 – Nadav

+0

LOL ... 문제 없습니다 ... 내 의견을 말한 이유는 ... "다른 이유가없는 한"... 여전히 불필요하게 디코딩 할 필요가 없습니다 ... – Kevin

관련 문제