線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3735
推到 Plurk!
推到 Facebook!

请问如何判断一个字符是繁体而不是简体

答題得分者是:歸木淡
newyanglei
一般會員


發表:11
回覆:3
積分:2
註冊:2005-06-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-15 08:27:40 IP:219.136.xxx.xxx 未訂閱
请问各位前辈,如何才能判断字符是繁体,有没有这样的判断函数,谢谢
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-16 09:52:32 IP:60.248.xxx.xxx 未訂閱
是指判斷是不是 BIG5 編碼嗎? 若是如此的話,目前是沒有很有效的方法來判斷 通常是利用編碼的範圍來判斷 因為 BIG5 的第二個 byte 範圍是 40-7E, A1-FE 而 GB2312 只用到 A1-FE,所以當發現第二 byte 是位於 40-7E 間時 就可以判斷其為 BIG5 了 不過,這個辦法在 GB18030 底下就破工了... 還有一個比較麻煩的方法,就是用 MultiByteToWideChar 把它轉成 Unicode,再設定字碼為 BIG5(CP950),看能不能轉過去 以上二個方法,僅供參考,沒試過
歸木淡
中階會員


發表:1
回覆:49
積分:75
註冊:2005-09-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-10-14 11:13:34 IP:71.235.xxx.xxx 未訂閱
const   AllowWindowsExtension=true;   //Windows big5比標準big5多七個字和一些符   Min_SecondChar1 = #$40;            Max_SecondChar1 = #$7E;   Min_SecondChar2 = #$A1;            Max_SecondChar2 = #$FE;   Big5SecondChar  = [Min_SecondChar1..Max_SecondChar1,                      Min_SecondChar2..Max_SecondChar2];    function  IsBig5(const S: string):Boolean;        // Empty is NOT Big5 begin   result:=false;   If length(s)<2 then exit; if not (S[2] in Big5SecondChar) then exit; Case S[1] of #$A1..#$A2,#$A4..#$C5,#$c9..#$F8: result:=true; #$A3: result:=(s[2]<=#$BF) or ((s[2]=#$E1) and AllowWindowsExtension); #$C6: result:=s[2]<=#$7E; #$F9: result:=(s[2]<=#$D5) or AllowWindowsExtension; end; end;
系統時間:2024-04-26 13:47:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!