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;

  • 相关阅读:
    Toast的替代者Snackbar
    SnappyDB—Android上的NoSQL数据库简介
    ButterKnife使用小结
    The following classes could not be found:
    asp.net后台解析JSON,并将值赋给对象
    .NET4.0的listview与DataPager的结合使用时的模板编辑
    ASP.NET 后台页面无法识别服务器控件ID
    Asp.net中判断是否是指定页面请求的代码示例
    ASP.NET中修改从数据库获取的datatable中的值
    GridView自定义分页样式(上一页,下一页,到第几页)
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255248.html
Copyright © 2011-2022 走看看