출처를 참고, 텍스트파일을 열어 UTF-8인코딩으로 변경하는 코드


int euckrCodepage = 51949;

System.Text.Encoding utf8 = System.Text.Encoding.UTF8;

System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(euckrCodepage);


string[] readText = File.ReadAllLines(FILE_DIR, euckr);

int line = readText.Length;

string curLine;

byte[] utf8Bytes;

string decodedStringByUTF8;

for (int i = 0; i < line; i ++)

{

    curLine = readText[i];

    utf8Bytes = utf8.GetBytes(curLine);

    decodedStringByUTF8 = utf8.GetString(utf8Bytes);

    readText[i] = decodedStringByUTF8;

}

File.WriteAllLines(FILE_DIR, readText, Encoding.UTF8);





아래는 참조한 코드


string s = "홍길동";

Console.WriteLine("원본문자열 : {0}", s);

 

 // 코드페이지 번호 : http://msdn.microsoft.com/ko-kr/library/system.text.encoding.aspx

int euckrCodepage = 51949;

             

// 인코딩을 편리하게 해주기 위해서 인코딩클래스 변수를 만듭니다.

System.Text.Encoding utf8 = System.Text.Encoding.UTF8;

System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(euckrCodepage);

 

// 위에서 만든 변수를 이용하여 Byte의 배열로 문자열을 인코딩하여 얻는 부분입니다.

byte[] utf8Bytes = utf8.GetBytes(s);

Console.Write("UTF-8 : ");

foreach (byte b in utf8Bytes)

{

    Console.Write("{0:X} ", b); // byte를 16진수로 표기합니다.

}

Console.Write("\n");


byte[] euckrBytes = euckr.GetBytes(s);

Console.Write("EUC-KR : ");

foreach (byte b in euckrBytes)

{

    Console.Write("{0:X} ", b); // byte를 16진수로 표기합니다.

}

Console.Write("\n");


// 인코딩된것을 문자열로 변환하기

string decodedStringByEUCKR = euckr.GetString(euckrBytes);

string decodedStringByUTF8 = utf8.GetString(utf8Bytes);

Console.WriteLine("EUC-KR로 디코딩된 문자열 : " + decodedStringByEUCKR);

Console.WriteLine("UTF-8로 디코딩된 문자열 : " + decodedStringByUTF8);



반응형

'Programming > C#' 카테고리의 다른 글

[C#] 문자열 검증. (null값, 공백확인)  (0) 2017.09.22
[C#] 날짜 변환 및 비교  (0) 2017.09.21
[C#] 람다 식 간략한 예시  (0) 2017.07.03
[C#] Nullable type  (0) 2017.04.24
[C#] 게시된 IIS의 경로 찾기  (0) 2017.03.28

+ Recent posts