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;

  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255248.html
Copyright © 2011-2022 走看看