본문 바로가기
C++ 200제/코딩 IT 정보

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

by vicddory 2017. 1. 11.

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 추가 (인코딩 기초 프로그래밍 코딩)

댓글