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

如何映射Unicode与ANSI/DBCS的CodePage

尚未結案
mustapha.wang
資深會員


發表:88
回覆:407
積分:274
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-04 18:00:42 IP:210.22.xxx.xxx 未訂閱
在用widnows的API函数WideCharToMultiByte时,可以把一个Unicode字串转到一个CodePage下的字串。 但如果Unicode字串是多个CodePage的资料混杂在一起的呢?如: 太阳《←㊣》Aتحديد خرج مواد لمجموعة A조계량석백설정 无论用哪个CodePage都会出现部分乱码。    有没有API函数可以识别某个Unicode字符是对应到哪个CodePage区的? windows API GetStringTypeExW可以判断出一个Unicode字符的性质,但还是不能判断是哪个CodePage,郁闷!
procedure TForm1.Button5Click(Sender: TObject);
var
  P:PWideChar;
  WResult:Word;
begin
  P:=PWideChar(tntEdit1.Text);
  while P^<>#0 do
  begin
    Windows.GetStringTypeExW(LOCALE_SYSTEM_DEFAULT,CT_CTYPE3,P,1,WResult);
    TntMemo1.Lines.Add(WideString(P^)+':'+InttoHex(WResult,4));
    Inc(P);
  end;
end;
我需要判断的目的是要统计字串的长度,不是Length(WideString),这个得到字符数,我要SBCS是1,DBCS是2这样统计。 如果我知道某个Unocode字符是对应到DBCS的话,就好了。 DBCS在Unicode里到底映射为那几个区段,$3000以上........?? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
系統時間:2017-12-19 2:19:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!