[小知識] 判斷是否為繁體字(Big5)

来源:互联网 发布:颈椎牵引器淘宝 编辑:程序博客网 时间:2024/05/17 01:02

http://www.dotblogs.com.tw/as15774/archive/2012/10/29/79734.aspx  原帖


Big5中文又稱"大五碼",現在的中文大部分都是使用這個標準。

那麼要怎麼做判斷呢?以下來簡單介紹一下。

 

Big5有兩個位元組所組成。

第一組8Bit範圍為 0x81~0xFE

第二組8Bit範圍為 0x40~0x7E 及 0xA1-0xFE

詳細的表格請檢視維基百科http://zh.wikipedia.org/wiki/大五碼#.E5.AD.97.E7.AF.80.E7.B5.90.E6.A7.8B

 

知道了這些規則後,來建立一個流程!!

之後就可以開始著手寫程式了!!

 

2012-10-29_214408

 

 

以下以C++作範例:

01void IsBig5(string strIn)
02{
03    cout<<strIn<<" ";
04    if(strIn.size()>1)
05    {
06        if(strIn[0]>=(char)0x81 && strIn[0]<=(char)0xFE)
07        {
08            if(strIn[1]>=(char)0x40 && strIn[1]<=(char)0x7E)
09            {
10                cout<<"是 Big5 字碼"<<endl;
11            }
12            else
13            {
14                if(strIn[1]>=(char)0xA1 && strIn[1]<=(char)0xF1)
15                {
16                    cout<<"是 Big5 字碼"<<endl;
17                }
18                else
19                {
20                    cout<<"非 Big5 字碼"<<endl;
21                }
22            }
23        }
24        else
25        {
26            cout<<"非 Big5 字碼"<<endl;
27        }
28    }
29    else
30    {
31        cout<<"非 Big5 字碼"<<endl;
32    }
33}

 

這個範例是假設使用者一定會輸入1個任意字(英文、數字、中文...等等)!!

之後當然!

可以讀入一整個字串,在個別判斷是否為Big5字碼。

 

文中若有文字錯誤或觀念錯誤請不吝指教,謝謝大家 =)