Please Enable JavaScript!
Gon[ Enable JavaScript ]

시샵 C# CSV 파일 저장 클래스 StreamWriter 한글 깨짐 현상

기타 언어/C# & MFC
반응형

한글이 깨진 상태로 저장되면 데이터의 무결성이 훼손됩니다. 이는 데이터의 신뢰성을 떨어뜨리며, 이후 데이터를 사용할 때 잘못된 정보로 인해 심각한 오류를 초래할 수 있습니다. 또한    CSV 파일을 사용자들이 읽거나 사용할 때 한글이 깨진다면 사용자 경험이 크게 저하됩니다. 이는 사용자가 파일을 이해할 수 없게 만들며, 사용자에게 불편을 초래합니다.

 

 

한글 깨짐 현상을 해결하기 위해 StreamWriter를 사용할 때 UTF-8 인코딩을 명시적으로 지정하는 것이 일반적인 해결 방법입니다. StreamWriter객체를 만들어 CSV 파일을 저장하는데 한글이 깨진다면 인코딩 정보를 넘겨야 만들어야 합니다.

 

샘플 코드를 통해서 알아보겠습니다. 아래 코드를 실행한 결과 한글 인코딩이 깨져서 보입니다.

 

using (StreamWriter file = new StreamWriter(@"test.csv"))
{
    int dataCount = 1;
    file.WriteLine("No, title, url"); // 헤더 설정
    foreach (KeyValuePair<String, String> items in dicSearchData)
    {
        String dicTitle = items.Value;
        String dicUrl = items.Key;
        // 데이터 나열
        file.WriteLine("{0}, {1}, {2}", dataCount, dicTitle, dicUrl);
        dataCount++;
    }                   
}

 

 

SystemWrite 객체 생성할 때 System.Text.Endcoding.Default 를 넘기면 기본 시스템 인코더를 세팅합니다. 

using (StreamWriter file = new StreamWriter(@"test.csv", false, System.Text.Encoding.Default))

 

특정 인코더를 지정할 수도 있습니다. 그림처럼 Encoding 종류중에 하나를 선택합니다.

 

인코딩 지정을 변경한 결과는 다음과 같습니다. 정상적으로 표현이 되는 것을 알 수가 있습니다.


 

 

반응형
Posted by 녹두장군1
,