判斷Big5

判斷Big5

Big5 第一位元編碼範圍是 0xa1 - 0xf9,第二位元範圍是 0x40 - 0x7e 與 0xa1 - 0xfe,
不過這個範圍內仍有不存在任何字的地方

依倚天中文系統系統字型檔的定義
STDFONT.15 (共 13094 字)
A440~C67E ← 5401 個常用字
C940~F9D5 ← 7652 個次常用字
C9D6~F9FE ← 41 cialis buy cialis online 個倚天字

SPCFONT.15 (共 408 字)
A140~A17E (63 個) A1A1~A1FE (94 個)
A240~A27E (63 個) A2A1~A2FE (94 個)
A340~A37E (63 個) A3A1~A3BF (31 個)

SPCFSUPP.15 (共 408 字)
C6A1~C6FE (94 個)
C740~C77E (63 個) C7A1~C7FE (94 個)
C840~C87E (63 個) C8A1~C8FE (94 個)

用C來判斷就是

BOOL IsBig5(const char *p)
{
   unsigned char a ;
   unsigned char b ;
   a = *p;
   b = *(p+1);
   return ( ( (a>=0xA4 && a<=0xC6) || (a>=0xC9 && a<=0xF9) ) &&
                ( (b>=0x40 && b<=0x7E) || (b>=0xA1 && b<=0xFE)));
}

Dotblogs 的標籤: