zoukankan      html  css  js  c++  java
  • [转载]Delphi 7升级到XE2的字符串问题3——转换函数

    {AnsiString与WideString互相转换函数}
    function AnsiStringToWideString(Const s:AnsiString):WideString;
    function WideStringToAnsiString(Const s:WideString):AnsiString;
    {UTF8与WideString互相转换函数}
    function UTF8StringToWideString(Const s:UTF8String):WideString;
    function WideStringToUTF8String(Const s:WideString):UTF8String;
    {UTF8与AnsiString互相转换函数}
    function UTF8StringToAnsiString(Const s:UTF8String):AnsiString;
    function AnsiStringToUTF8String(Const s:AnsiString):UTF8String;

     


    {AnsiString与WideString互相转换函数}
    function AnsiStringToWideString(Const s:AnsiString):WideString;
    var
      iLen:Integer;
      sw  :WideString;
    begin
      result := '';
      if Length(s)=0 then Exit;
      iLen := MultiByteToWideChar(CP_ACP,0,PAnsiChar(s),-1,nil,0);
      SetLength(sw,iLen-1);
      MultiByteToWideChar(CP_ACP,0,PAnsiChar(s),-1,PWideChar(sw),iLen);
      Result:=sw;
    end;

    function WideStringToAnsiString(Const s:WideString):AnsiString;
    var
      iLen:Integer;
      sa  :AnsiString;
    begin
      result := '';
      if Length(s)=0 then Exit;
      iLen:=WideCharToMultiByte(CP_ACP,0,PWideChar(s),-1,nil,0,nil,nil);
      SetLength(sa,iLen-1);
      WideCharToMultiByte(CP_ACP,0,PWideChar(s),-1,PAnsiChar(sa),iLen,nil,nil);
      Result:=sa;
    end;

    {UTF8与WideString互相转换函数}
    function UTF8StringToWideString(Const s:UTF8String):WideString;
    var
      iLen:Integer;
      sw  :WideString;
    begin
      result := '';
      if Length(s)=0 then Exit;
      iLen := MultiByteToWideChar(CP_UTF8,0,PAnsiChar(s),-1,nil,0);
      SetLength(sw,iLen);
      MultiByteToWideChar(CP_UTF8,0,PAnsiChar(s),-1,PWideChar(sw),iLen);
      Result:=sw;
    end;

    function WideStringToUTF8String(Const s:WideString):UTF8String;
    var
      iLen:Integer;
      su  :UTF8String;
    begin
      result := '';
      if Length(s)=0 then Exit;
      iLen := WideCharToMultiByte(CP_UTF8,0,PWideChar(s),-1,nil,0,nil,nil);
      SetLength(su,iLen);
      WideCharToMultiByte(CP_UTF8,0,PWideChar(s),-1,PAnsiChar(su),iLen,nil,nil);
      Result:=su;
    end;

    {UTF8与AnsiString互相转换函数}
    function UTF8StringToAnsiString(Const s:UTF8String):AnsiString;
    begin
      result:=WideStringToAnsiString(UTF8StringToWideString(S));
    end;

    function AnsiStringToUTF8String(Const s:AnsiString):UTF8String;
    begin
      Result:=WideStringToUTF8String(AnsiStringToWideString(s));
    end;

  • 相关阅读:
    新萝卜家园GHOST WIN7系统32,64位极速装机特别版
    BiliBili 第三方 Android 客户端应用源码
    高仿饿了么应用项目源码
    12306火车票订票项目源码
    美女的秘密项目源码
    漫画阅读应用源码
    高仿美团应用客户端布局源码
    Unix时间戳 和 NSDate 的转换
    NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
    ReactiveCocoa入门教程——第一部分
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255247.html
Copyright © 2011-2022 走看看