¹®ÀÚ ÄÚµå Á¾º°ÀÇ ÆÇÁ¤


ÇÔ¼ö¸í
whatKanji  ¹®ÀÚ ÄÚµåÀÇ Á¾º°À» ÆÇÁ¤ÇÑ´Ù
Çü½Ä
int whatKanji(unsigned char *str);
Àμö
str  (ÀÔ·Â) ij¸¯ÅÍ ¶óÀÎ
ÇÔ¼öÄ¡
ÇÑÀÚÀÇ Á¾º°À» ³ªÅ¸³»´Â °ª
¡¤Àμö strÀÇ ¼±µÎ ¹®ÀÚ°¡ ¹Ý°¢ °¡³ªÀÇ °æ¿ì, ÇÔ¼öÄ¡´Â 1
¡¤Àμö strÀÇ ¼±µÎ 2 ¹®ÀÚ°¡ ½¬ÇÁÆ® JIS ÄÚµåÀÇ °æ¿ì, ÇÔ¼öÄ¡´Â 2
¡¤Àμö strÀÇ ¼±µÎ 2 ¹®ÀÚ°¡ EUC ¹Ý°¢ °¡³ª ÄÚµåÀÇ °æ¿ì, ÇÔ¼öÄ¡´Â 4
¡¤Àμö strÀÇ ¼±µÎ 2 ¹®ÀÚ°¡ EUC Àü°¢ ÄÚµåÀÇ °æ¿ì, ÇÔ¼öÄ¡´Â 8
¡¤Àμö strÀÇ ¼±µÎ 3 ¹®ÀÚ°¡ ½ÅJIS(X0208-1983) ½¬ÇÁÆ® ÄÚµåÀÇ °æ¿ì,
¡¡ÇÔ¼öÄ¡´Â 16
¡¤Àμö strÀÇ ¼±µÎ 3 ¹®ÀÚ°¡ ±¸JIS(X0208-1978) ½¬ÇÁÆ® ÄÚµåÀÇ °æ¿ì,
¡¡ÇÔ¼öÄ¡´Â 32
¡¤Àμö strÀÇ ¼±µÎ 3 ¹®ÀÚ°¡ JIS ·Î¸¶ÀÚ(X0201) ½¬ÇÁÆ® ÄÚµåÀÇ °æ¿ì,
¡¡ÇÔ¼öÄ¡´Â 64
¡¤Àμö strÀÇ ¼±µÎ 3 ¹®ÀÚ°¡ ASCII ½¬ÇÁÆ® ÄÚµåÀÇ °æ¿ì, ÇÔ¼öÄ¡´Â 128
¡¤À§ÀÇ ÄÉÀ̽º°¡ º¹¼ö°³ µ¿½Ã¿¡ ÀϾ´Â °æ¿ì´Â, ÇÔ¼öÄ¡´Â ±×·¯ÇÑ ³í¸®ÇÕ
¡¤À§ÀÇ ¸ÓÁö¾Ê¾Æµµ ¾Æ´Ñ °æ¿ì´Â, ÇÔ¼öÄ¡´Â 0
ÁÖÀÇ »çÇ×

¿ë·Ê(whatKanji-test.c )
whatKanji("ÇÑÀÚ");

ÇÁ·Î±×·¥(whatKanji.c )
int whatKanji(unsigned char *str)
{
    int val = 0;
    unsigned char b1, b2, b3;

    b1 = *str++;
    b2 = *str++;
    b3 = *str;
    if (b1 == 0x1b) {
        if (b2 == '$' && b3 == 'B') return 16;
        if (b2 == '$' && b3 == '@') return 32;
        if (b2 == '(' && b3 == 'J') return 64;
        if (b2 == '(' && b3 == 'B') return 128;
        return 0;
    }
    if ( b1 >= 0xa0 && b1 <= 0xdf) val |= 1;
    if ((b1 >= 0x81 && b1 <= 0x9f ||
         b1 >= 0xe0 && b1 <= 0xfc) && 
        (b2 >= 0x40 && b2 <= 0xfc && b2 ! = 0x7f)) val |= 2;
    if (b1 == 0x8e && (b2 >= 0xa0 && b2 <= 0xdf)) val |= 4; 
    if ((b1 >= 0xa1 && b1 <= 0xfe) &&
        (b2 >= 0xa1 && b1 <= 0xfe)) val |= 8;

    return val;
}
¼³¸í
¹Ý°¢ °¡³ª ÄÚµå´Â 0xa0 - 0xdf ÀÇ »çÀ̸¦ »ç¿ëÇÑ´Ù.

½¬ÇÁÆ® JIS ÄÚµå´Â Á¦1¹ÙÀÌÆ®·Î¼­ 0x81 - 0x9f ±îÁö¿Í 0xe0 - 0xfc ±îÁö, Á¦2¹ÙÀÌÆ®·Î¼­ 0x40 - 0xfc ±îÁö(0 x7f¸¦ Á¦¿ÜÇÏ´Ù)¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¸ð¾Æ µÎ¾î ½¬ÇÁÆ® JIS´Â »ó±âÀÇ ¹Ý°¢ ÄÚµå¿Í È¥ÀçÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, Á¦¾î ¹®ÀÚ (À¸)·Î¼­ »ç¿ëµÇ´Â ¡¬(backslash ¶Ç´Â ¿£±âÈ£)µîÀÌ Á¦2¹ÙÀÌÆ® ÀÇ ¿µ¿ª¿¡ µé¾î°¡ ÀÖ±â À§Çؼ­(¶§¹®¿¡) ¹®Á¦°¡ »ý±â´Â ÀÏÀÌ ÀÖ´Ù.

EUC ÄÚµå´Â Á¦1, Á¦2¹ÙÀÌÆ® ¸ðµÎ 0xa1 - 0xfe ±îÁöÀÌÁö¸¸, ¹Ý°¢ÀÇ °¡³ª ¹®ÀÚ¿¡ ´ëÇؼ­´Â, 0x8e ¸¦ ¹Ý°¢ °¡³ª ¹®ÀÚÀÇ ÀüÁ¶¸², 2¹ÙÀÌÆ®·Î Ç¥Çö ÇÑ´Ù.

ÇÑÆí, JIS ÄÚµå´Â 7 ºñÆ®°è ÇÑÀÚ ÄÚµåÀ̱â (À§ÇØ)¶§¹®¿¡, ´ÙÀ½°ú °°Àº ½¬ÇÁÆ® Äڵ带 »ç¿ëÇØ, ij¸¯ÅÍ ¼¼Æ®ÀÇ º¯È¯À» ½Ç½ÃÇØ, °¡³ªÇÑÀÚ¸¦ Ç¥ÇöÇÑ´Ù.

¡¡¡¡¡¡½¬ÇÁÆ® ÄÚµå À϶÷
ij¸¯ÅÍ ¼¼Æ® ½¬ÇÁÆ® ÄÚµå
½ÅJIS X0208-1983 ESC $ B
±¸JIS X0208-1978 ESC $ @
JIS ·Î¸¶ÀÚ X0201 ESC ( J
ASCII ESC ( B

°ü·Ã ÇÔ¼ö