본문 바로가기

프로그래밍/폰트_문자열_인코딩

한글 코드 판단

typedef enum {


        HANGUL_JAMO,                            // 한글자모

        HANGUL_COMPAT_JAMO,                     // 호환용한글자모

        HANGUL_JAMO_EXT_A,                      // 한글자모확장-A

        HANGUL_SYLLABLES,                       // 한글음절 (흔히들얘기하는 유니코드한글)

        HANGUL_JAMO_EXT_B,                      // 한글자모확장-B


        HANGUL_JOHAB,                           // 조합형

        HANGUL_KSC5601,                         // 완성형

        HANGUL_EUCKR = HANGULE_KSC5601, // 완성형


        HANGUL_CP949,                           // 윈도우 완성형


        ENGLISH_ASCII                           // 아스키 영문


} chartype;



        if ( str[0] < 0x80 )

                type = ENGLISH_ASCII;


        else

        if ( str[0] >= 0x11 && str[1] >= 0x00 && str[0] <= 0x11 && str[1] <= 0xFF )

                type = HANGUL_JAMO;


        else

        if ( str[0] >= 0x31 && str[1] >= 0x30 && str[0] <= 0x31 && str[1] <= 0x8F )

                type = HANGUL_COMPAT_JAMO;


        else

        if ( str[0] >= 0xA9 && str[1] >= 0x60 && str[0] <= 0xA9 && str[1] <= 0x7F )

                type = HANGUL_JAMO_EXT_A;


        else

        if ( str[0] >= 0xAC && str[1] >= 0x00 && str[0] <= 0xD7 && str[1] <= 0xA3 )

                type = HANGUL_SYLLABLES;


        else

        if ( str[0] >= 0xD7 && str[1] >= 0xB0 && str[0] <= 0xD7 && str[1] <= 0xFF )

                type = HANGUL_JAMO_EXT_B;


        // --- 여기까지는 유니코드


        else

        if ( str[0] >= 0xB0 && str[1] >= 0xA1 && str[0] <= 0xC8 && str[1] <= 0xFE )

                type = HANGUL_KSC5601;          // or HANGUL_EUC_KR


/*  ==== 확인이 필요

        else

        //if ( str[0] >= 0x84 && str[0] <= 0xD3 && ((str[1] >= 0x41 && str[1] <= 0x7E) || (str[1] >=0x81 && str[1] <= 0xFE)) )

        if ( str[0] >= 0x84 && (str[1] >= 0x41 || str[1] >=0x81) && str[0] <= 0xD3 && (str[1] <= 0x7E || str[1] <= 0xFE) )

                type = HANGUL_JOHAB;


        0x8861 ~ 0xD3B7

*/


        else

        if ( str[0] >= 0x81 && str[1] >= 0x41 && str[0] <= 0xC8 && str[1] <= 0xFe )

                type = HANGUL_CP949;





Calendar
«   2024/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
Archives
Visits
Today
Yesterday