国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

UTF-8字符串轉為AnsiString

2019-11-18 18:53:36
字體:
來源:轉載
供稿:網友
   //將UTF-8字符串轉為代碼頁為CodePage的AnsiString。
function UTF8ToAnsiString(utf8str:string; CodePage:integer):AnsiString;
var
 i:integer;
 buffer:widestring;
 ch,c1,c2:byte;

begin
 result:='';
 i:=1;
 while i<=Length(utf8str) do begin
   ch:=byte(utf8str[i]);
   setlength(buffer,length(buffer)+1);
   if (ch and $80)=0 then //1-byte
      buffer[length(buffer)]:=widechar(ch)
   else begin
   if (ch AND $E0) = $C0 then begin // 2-byte
      inc(i);
      c1 := byte(utf8str[i]);
      buffer[length(buffer)]:=widechar((Word(ch AND $1F) SHL 6) OR (c1 AND $3F));
    end
    else begin // 3-byte
      inc(i);
      c1 := byte(utf8str[i]);
      inc(i);
      c2 := byte(utf8str[i]);
      buffer[length(buffer)]:=widechar(
        (word(ch AND $0F) SHL 12) OR
        (word(c1 AND $3F) SHL 6) OR
        (c2 AND $3F));
    end;
    end;
   inc(i);
  end; //while
  i := WideCharToMultiByte(codePage,
           WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
           @buffer[1], -1, nil, 0, nil, nil);
  if i>1 then begin
    SetLength(Result, i-1);
    WideCharToMultiByte(codePage,
        WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
        @buffer[1], -1, @Result[1], i-1, nil, nil);
  end;
end;

上一篇:界面色彩漸變效果的實現

下一篇:動態更新DBGrid的顏色

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 探索| 高阳县| 贞丰县| 江孜县| 富顺县| 枞阳县| 东阿县| 安泽县| 仁寿县| 库车县| 农安县| 固镇县| 古蔺县| 饶河县| 靖西县| 桃园县| 雅江县| 五大连池市| 灵寿县| 甘谷县| 神木县| 高安市| 泾川县| 苍南县| 盐津县| 育儿| 桦川县| 鹤山市| 绥江县| 云安县| 隆林| 墨江| 海南省| 普格县| 巫溪县| 南靖县| 通江县| 襄城县| 庆云县| 万盛区| 定陶县|