HelloCho

[C#]utf-8에서 euckr로 인코딩하기 본문

C#

[C#]utf-8에서 euckr로 인코딩하기

쵸송 2021. 6. 2. 18:57

utf-8로 되어있는 문자를 euckr로 변환하는 코드입니다.

euc-kr에서는 지원하지 않는 문자를 넣고 변환을 하는 경우에는 '?'로 대체 하여 출력하게 됩니다.

다음은 예시 코드입니다.

지원하지 않는 유니코드 문자를 넣고 코드를 실행하면 ?? 로 찍혀서 나오게 됩니다.

using System;
using System.Text;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int euckrCodePage = 51949; // euc-kr 코드 번호

            Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
            Encoding euckr = Encoding.GetEncoding(euckrCodePage);

            var data = "한글되나요🌙";
            var utf8Bytes = Encoding.UTF8.GetBytes(data);
            var euckrBytes = Encoding.Convert(Encoding.UTF8, euckr, utf8Bytes);

            char[] euckrChars = new char[euckr.GetCharCount(euckrBytes, 0, euckrBytes.Length)];
            euckr.GetChars(euckrBytes, 0, euckrBytes.Length, euckrChars, 0);

            string asciiString = new string(euckrChars);

            Console.WriteLine(asciiString);
        }
    }
}

 

변환 결과

한글되나요??

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

[C#] 2021 C# 코딩 가이드  (0) 2021.05.04
[C#] UTF8 인코딩 하기  (0) 2021.03.25
[C#] http post 방식으로 json Data Parameter 보내기  (0) 2021.03.22
[C#] Encoding 한글 깨질때  (0) 2020.06.11
[C#] euc-kr 인코딩 하기  (0) 2020.05.22
Comments