티스토리 뷰

728x90

요즘은 EUC-KR 인코딩을 처리할 일이 거의 없을 정도로 UTF-8 인코딩이 일반화되었다. 표준으로 굳어진 UTF-8 인코딩을 사용하는 웹페이지가 90% 이상이라고 한다. 문제는 고객의 요청이나 기타 사유로 EUC-KR 인코딩을 사용해야 하거나 사용할 수밖에 없는 상황이 있다는 것이다. 대표적인 것이 CSV 파일로 저장해서 엑셀로 읽거나 또는 반대의 경우이다.

 

File.WriteAllText(outDir, sb.ToString(), System.Text.Encoding.GetEncoding("euc-kr"));

 

통상 위와 같은 코드를 작성하면 지정한 인코딩으로 변환해서 스트링을 파일로 저장할 수 있다.

 

문제는 개발을 닷넷 프레임워크 기반이 아니라 닷넷 코어를 기반으로 하는 경우에 닷넷 코어 5.0 이상부터는 닷넷 코어를 가볍게 하기 위해서 UTF-8이나 ASCII는 기본적으로 지원하지만 다른 인코딩은 포함하지 않기 때문에 저 문장에서 다음과 같은 예외가 발생한다.

'euc-kr' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')

 

이런 경우의 해결책은 일단,

 

dotnet add package System.Text.Encoding.CodePages

 

위의 명령으로 프로젝트에 코드 페이지 패키지를 추가하고, 인코딩 관련 작업 이전에

 

System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);

 

위의 문장을 추가하여 코드페이지를 등록하면 정상적으로 수행할 수 있다. 프로그램 어떤 곳에다 추가해도 관계없다.

 

 

적용 결과 닷넷 8.0 코어에서도 정상적으로 EUC-KR 인코딩 출력이 가능했다.

 

 

 

728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함