출처를 참고, 텍스트파일을 열어 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);