ITPub博客

首页 > 应用开发 > IT综合 > UTF-8字符串转为AnsiString (转)

UTF-8字符串转为AnsiString (转)

原创 IT综合 作者:gugu99 时间:2007-10-13 12:48:21 0 删除 编辑
UTF-8字符串转为AnsiString (转)[@more@]//江雪 2001.06.11 //将UTF-8字符串转为代码页为CodePage的AnsiString。 function UTF8ToAnsiString(utf8str:string; CodePage:integer):AnsiString; var i:integer; buffer:wstring; ch,c1,c2:byte; begin result:='; i:=1; while iword</a>(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_DISCAR 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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-976312/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3121
  • 访问量
    2359690