티스토리 뷰

목차

    반응형

    C# 한글 깨짐, 파일스트림 euckr 추가 (인코딩 기초 프로그래밍 코딩)


    C# 한글깨짐[C# 한글깨짐] 기초 인코딩 프로그래밍


    C# 한글깨짐은 파일을 다룰 때, 종종 발생합니다. 구글어스의 Kml 파일을 예로 C# 한글깨짐을 살펴보죠.


    1
    2
    3
    4
    5
    6
    7
    FileStream Stream = new FileStream(@"C:\test.kml", FileMode.Open, FileAccess.ReadWrite);
    StreamReader Reader = new StreamReader(Stream, Encoding.Defaulttrue);
     
    String getReader = Reader.ReadToEnd();
     
    byte[] b = System.Text.Encoding.Default.GetBytes(getReader);
    Stream.Write(b, 0, getReader.Length);
    cs


    중요한 건 빨간 글씨인데(Encoding.Default) 파일 형식이 어떻든 간에 기본 형태로 인코딩해서 C# 한글깨짐을 방지할 수 있습니다.


    일반적인 윈도우즈 기반의 프로그래밍에서 생성된 파일이야 C# 한글깨짐에 큰 문제가 없지만, Kml 같은 웹 기반에서 만들어진 파일들은 ASCII 형태로 인코딩되기 때문에 Encoding.Default와 같은 소스를 추가해 C# 한글깨짐을 미리 방지할 필요가 있습니다.


    C# 한글깨짐 파일스트림[C# 한글깨짐] 기초 인코딩 프로그래밍


    DB 연동 시, C# 한글로 된 내용을 조회할 때, 텍스트가 "?????" 등으로 깨짐 현상이 발생할 수 있는데, DB 연결과 동시에, ";charset=euckr"을 삽입해 주면, 깨짐 현상 방지도 가능합니다.


    이처럼 C# 한글깨짐을 방지할 코드를 넣었다면, 줄 단위로 텍스트를 추가하는 아래의 예도 참조해 보세요.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    List<string> arrTemp = new List<string>();
    //데이터를 가질 임시 Generic List , NetFramework 2.0부터 사
     
    string FilePath = "data.log";
    //파일 경로
     
    arrTemp.AddRange(File.ReadAllLines(FilePath));
    //파일의 모든 데이터를 읽어서 arrTemp에 넣는다.
     
    arrTemp.Insert(3"abcd1234");
    //원하는 n번째에 데이터를 삽입한다. 여기선 3번째로 가정
     
    File.WriteAllLines(FilePath, arrTemp.ToArray());
    //파일에 기록한다. 기존 파일이 있을 경우 자동으로 덮어쓴다.
    cs


    파일을 열어보면 3번째에 abcd1234가 기록된 것을 볼 수 있을 겁니다.


    C# 한글 깨짐, 파일스트림 euckr 추가 (인코딩 기초 프로그래밍 코딩)

    반응형