본문 바로가기

Programing/.NET

[C#]EUC-KR UTF8변환

 

API 통신을할때 언어셋이 다른경우 한글이 깨져서 나오는경우가 발생한다.

그때 EUC-KR 에서 UTF8로 변환하는 코드이다.

 

URL인코딩을 한경우 

HttpUtility.UrlDecode() 메소드를 통해디코딩할때

Encoding.GetEncoding(51949) 메소드를 이용하여 EUC-KR 문자로 디코딩후

 

해당문자를 byte에담아 문자를 출력한다.

int euckrCodepage = 51949; //EUC-KR 의 코드번호   

// URL Encoding된 문자열을 Decoding  
name = HttpUtility.UrlDecode(HttpUtility.UrlDecode(name, Encoding.GetEncoding(euckrCodepage))); 
System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(euckrCodepage);  

//문자열을 EUC-KR byte로변환하여  byte[]에담아준다.   
byte[] euckrBytes = euckr.GetBytes(name);  
name = euckr.GetString(euckrBytes);  
 

(예시의 경우 EUC-KR 로 2번 인코딩해서 받은 문자열이기때문에 2번디코딩하였다.)

 

자주사용하는 언어코드

1200 utf-16 Unicode

65001 utf-8 Unicode (UTF-8)

51949 euc-kr Korean (EUC)

 

※참조 : https://msdn.microsoft.com/ko-kr/library/system.text.encodinginfo.getencoding(v=vs.110).aspx