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
    log4j自动加载原理
    java反射中的动态代理机制(有实例)
    万能的ctrl+shift+F(Element 'beans' cannot have character [children], because the type's content type is element-only.错误)
    Spring的@ModelAttribute注解
    Spring MVC 的@RequestParam注解和request.getParameter("XXX")
    SpringMVC 示例实战教程
    ecshop教程:重置后台密码MD5+salt
    github常见操作和常见错误!错误提示:fatal: remote origin already exists.
    ECShop函数列表大全
  • 原文地址:https://www.cnblogs.com/luckForever/p/7255248.html
Copyright © 2011-2022 走看看