2009-07-27 3 views
2

CSV 파일을 편집해야하는데, 문제는 óç ç와 같은 특수 문자가 엉망이된다는 것입니다.CSV 파일을 읽습니다. 특수 문자 문제

Heres는 내 코드의 peice입니다 :

static void ReadFromFile(){ 

     StreamReader SR = new StreamReader("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote.csv", Encoding.Default); 

     StreamWriter SW = new StreamWriter("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote_Ed.csv", true, System.Text.Encoding.GetEncoding("Windows-1252")); 

     string S; 
     char C='a'; 
     int i=0; 
     S=SR.ReadLine(); 
     SW.Write(S); 

} 

업데이트하기 다음 Stramreader 개체에 Encoding.Default를 사용하여 문자를 읽을 수

잘 메신저 수 있습니다. (콘솔에 표시 할 수 있습니다.)

작성자의 ISO 8859-1 및 CP-1252로 시도했지만 출력이 엉망입니다.

감사합니다.

답변

0

저는 키가 실제로 인코딩이라고 생각합니다. 입력 데이터의 텍스트 인코딩은 무엇입니까?

0

전체 파일을 읽고 \ r \ n으로 나누면 어떨까요?

3

입력 파일을 ASCII로 선언했습니다. 분명히 아닙니다. 그것을 iso-8859-1 또는 CP-1252 (Windows Latin-1)와 같은 것으로 변경하면 더 나은 행운을 누릴 수 있습니다 ...

이것은 óç ç에 해당하는 근본적인 문제를 해결하지 못합니다 ASCII로, 그래서 그들과 무엇을 할거 니? 그냥 던져 버리시겠습니까? 또는 출력 대신 UTF-8과 같은 보편적 인 인코딩을 사용하고 있는지 확인해야합니까?

가장 좋은 방법은 소스에서이 파일에 사용 된 인코딩이 무엇인지 알아 내고 파일받는 사람에게 출력에 적합한 내용을 확인하는 것입니다. 알아낼 수있는 유일한 방법은 물어 보는 것입니다. 표면에 비슷한 다양한 인코딩이 있기 때문입니다. 여기

1

, 당신은 나사 체결 할 수있는 두 곳,

  1. 읽는 동안이 있습니다 (이 본질적으로 나사 다음 단계)
  2. 소스 파일 인코딩

확인을 쓰는 동안 인코딩을 나타내는 상태 표시 줄이있는 Notepad2을 시도해 볼 수 있으며 소스 파일을 읽는 동안이를 사용합니다.

성공적으로 파일을 읽은 후 출력 파일에서 해당 문자를 유지하려면 UTF-8로 작성하십시오. 당신이 말한 바로는

1

:

  1. 당신은 당신이 가정하는 입력 파일 (의 인코딩에 대한 올바른 가정을하지했습니다, 즉, 데이터를 올바르게 읽고 관리하는 인코딩은 좋은 것입니다.) 이는 콘솔에 문자열을 쓸 수 있고 입력과 일치 할 수 있다고 명시했기 때문입니다.

  2. 출력 파일 데이터는 사용자가 볼 때 어떻게 든 올바르지 않습니다. 제대로의 데이터, 당신은 실제로 당신이 언급 한 문자를 지원하지 않습니다 (윈도우 1252)를 사용하는 출력 인코딩을 읽은 이후

하지만, (거기에 다른 사람입니까?), 즉 ó, 및 ç이면 파일을 올바르게 쓰지 않아도됩니다.

출력 파일이 잘못 작성되었다는 결론을 내리는 방법은 어떨까요? 사용중인 도구를 사용하여 특정 인코딩을 가정하고 있습니까?