• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi编码转换Unicodegbkbig5(使用LCMapString设置区域后,再用API转换) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文:http://blog.dream4dev.com/article.asp?id=17

function UnicodeEncode(Str: string; CodePage: integer): WideString;
var
 Len: integer;
begin
 Len := Length(Str) + 1;
 SetLength(Result, Len);
 Len := MultiByteToWideChar(CodePage, 0, PChar(Str), -1, PWideChar(Result), Len);
 SetLength(Result, Len - 1); //end is #0
end;

function UnicodeDecode(Str: WideString; CodePage: integer): string;
var
 Len: integer;
begin
 Len := Length(Str) * 2 + 1; //one for #0
 SetLength(Result, Len);
 Len := WideCharToMultiByte(CodePage, 0, PWideChar(Str), -1, PChar(Result), Len, nil, nil);
 SetLength(Result, Len - 1);
end;

function Gb2Big5(Str: string): string;
begin
 SetLength(Result, Length(Str));
 LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE,
 PChar(Str), Length(Str),
 PChar(Result), Length(Result));
 Result := UnicodeDecode(UnicodeEncode(Result, 936), 950);
end;

function Big52Gb(Str: string): string;
begin
 Str := UnicodeDecode(UnicodeEncode(Str, 950), 936);
 SetLength(Result, Length(Str));
 LCMapString(GetUserDefaultLCID, LCMAP_SIMPLIFIED_CHINESE,
 PChar(Str), Length(Str),
 PChar(Result), Length(Result));
end;
 
function Utf8Encode(const WS: WideString): UTF8String;
var
 L: Integer;
 Temp: UTF8String;
begin
 Result := ';
 if WS = ' then Exit;
 SetLength(Temp, Length(WS) * 3); // SetLength includes space for null terminator
 L := UnicodeToUtf8(PChar(Temp), Length(Temp) + 1, PWideChar(WS), Length(WS));
 if L > 0 then
 SetLength(Temp, L - 1)
 else
 Temp := ';
 Result := Temp;
end;

http://www.vckbase.com/module/articleContent.php?id=4387


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiCompilerVersionConstant发布时间:2022-07-18
下一篇:
delphiSender和Tag的用法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap