• ansi字符串和utf8字符串之间相互转换


    ansi字符串和utf8字符串之间相互转换

    unit AnsiStringTools;
    
    interface
    
    uses
      SysUtils;
    
    
    
    type
      {$if CompilerVersion <= 18.5}
         TBytes = array of Byte;
      {$ifend}
      TAnsiStringTools = class(TObject)
      public
        /// <summary>
        /// ansi字符串转utf8 bytes
        /// </summary>
        /// <param name="v">ansi字符串</param>
        /// <returns>utf8 bytes</returns>
        class function ansiString2Utf8Bytes(v:AnsiString): TBytes;
        /// <summary>
        /// utf8字符串转ansi字符串
        /// </summary>
        /// <param name="pvData"></param>
        /// <returns>ansi字符串</returns>
        class function Utf8AnsiString2AnsiString(pvData:AnsiString): AnsiString;
        /// <summary>
        /// uft8 bytes转ansi字符串
        /// </summary>
        /// <param name="pvData">uft8 bytes</param>
        /// <returns>ansi字符串</returns>
        class function Utf8Bytes2AnsiString(pvData: TBytes): AnsiString;
      end;
    
    implementation
    
    class function TAnsiStringTools.ansiString2Utf8Bytes(v:AnsiString): TBytes;
    var
      lvTemp:AnsiString;
    begin
      lvTemp := AnsiToUtf8(v);
      SetLength(Result, Length(lvTemp));
      Move(lvTemp[1], Result[0],  Length(lvTemp));
    end;
    
    class function TAnsiStringTools.Utf8AnsiString2AnsiString(pvData:AnsiString):
        AnsiString;
    begin
      Result := Utf8ToAnsi(pvData);
    end;
    
    class function TAnsiStringTools.Utf8Bytes2AnsiString(pvData: TBytes):
        AnsiString;
    var
      lvTemp:AnsiString;
    begin
      SetLength(lvTemp, Length(pvData));
      Move(pvData[0], lvTemp[1],  Length(pvData));
      Result := Utf8ToAnsi(lvTemp);
    end;
    
    end.
    

      

  • 相关阅读:
    jsonrpc
    第十章:多线程
    第九章:IO流
    第八章:集合
    第七章:常用类
    第六章:异常机制
    第四章:数组
    第三章:流程控制语句
    第二章:数据类型和运算符
    第五章:面向对象4
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/12262503.html
Copyright © 2020-2023  润新知