EUC Äڵ带 ½¬ÇÁÆ® JIS ÄÚµå·Î º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
euc2sjis  EUC Äڵ带 ½¬ÇÁÆ® JIS ÄÚµå·Î º¯È¯ÇÑ´Ù
Çü½Ä
unsigned int euc2sjis(unsigned int euc);
Àμö
euc  EUC ÄÚµå
ÇÔ¼öÄ¡
½¬ÇÁÆ® JIS ÄÚµå
ÁÖÀÇ »çÇ×
¹Ý°¢ °¡³ª ´ëÀÀÀÇ EUC Äڵ带 Àü°¢ °¡³ª SJIS ÄÚµå·Î º¯È¯ÇÏ°í ÀÖ´Ù. ±× ¶§¹®¿¡(À§ÇØ), ÇÔ¼ö hankaku2zen() (¹Ý°¢ °¡³ª¸¦ Àü°¢ °¡³ª·Î º¯È¯ÇÑ´Ù)(ÀÌ)°¡ º°µµ ÇÊ¿äÇÏ´Ù.

¿ë·Ê(euc2sjis-test.c )
euc2sjis(0xb4c1);

ÇÁ·Î±×·¥(euc2sjis.c )
unsigned int euc2sjis(unsigned int euc)
{
    unsigned int jis;
    unsigned int hib, lob;

    if ((euc & 0xff00) == 0x8e00)
        jis = hankaku2zen(euc & 0xff);
    else jis = euc & ~0x8080;
    
    hib = (jis >> 8) & 0xff;
    lob = jis & 0xff;
    lob += (hib & 1) ?  0x1f : 0x7d;
    if (lob >= 0x7f) lob++;
    hib = ((hib - 0x21) >> 1) + 0x81;
    if (hib > 0x9f) hib += 0x40;

    return (hib << 8) | lob;
}
¼³¸í
EUC ÄÚµå´Â UNIX»ó¿¡¼­ ³Ð°Ô »ç¿ëµÇ°í ÀÖ´Â 8 ºñÆ®°è ÇÑÀÚ ÄÚµå (À̾î)¿©, JIS ÄÚµåÀÇ Á¦1¹ÙÀÌÆ®, Á¦2¹ÙÀÌÆ®ÀÇ ¾çÂÊ ¸ðµÎ¿¡ 0 x80¸¦ °¡»êÇß´Ù ¹°°ÇÀ» »ç¿ëÇÑ´Ù. °Ô´Ù°¡ ANKÀÇ ¹Ý°¢ °¡³ª ¹®ÀÚ¿¡ ´ëÇؼ­´Â, Àü¿¡ 1¹ÙÀÌÆ® (0x8e)(À»)¸¦ ºÙ¿© 2¹ÙÀÌÆ®·Î ¹Ý°¢ °¡³ª ¹®ÀÚ¸¦ ³ªÅ¸³½´Ù.

ÇÑÆí, ½¬ÇÁÆ® JIS ÄÚµå´Â Microsoft ÇÑÀÚ ÄÚµå¶ó°íµµ ºÒ·Á ÇöÀçÀÇ °÷ °¡Àå ³Ð°Ô »ç¿ëµÇ°í ÀÖ´Â 8 ºñÆ®°è ÇÑÀÚ ÄÚµåÀ̸ç, PC À§ÀÇ Ç¥ÁØ ÇÑÀÚ ÄÚµåÀ̱⵵ ÇÏ´Ù.

°ü·Ã ÇÔ¼ö
JIS Äڵ带 SJIS·Î º¯È¯ÇÏ´Â, JIS Äڵ带 EUC·Î º¯È¯ÇÏ´Â, SJIS Äڵ带 JIS·Î º¯È¯ÇÏ´Â, SJIS Äڵ带 EUC·Î º¯È¯ÇÏ´Â, EUC Äڵ带 JIS·Î º¯È¯ÇÑ´Ù