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;

  • 相关阅读:
    java相关的流
    矩阵的行列式
    C语言链表逆序问题(附图解)
    RSA算法
    window.onload的用法
    linux中搜索文件内容关键字
    java.net.BindException: Address already in use: 解决方法
    设计模式之装饰者decorator模式
    java.lang.reflect.InvocationTargetException: null(已解决)
    mitmproxy 脚本启动
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255248.html
Copyright © 2011-2022 走看看