字符串转化成十六进制输出StrToHex(Delphi版、C#版)

时间:2023-01-07 10:16:56

//注意:Delphi2010以下版本默认的字符编码是ANSI,VS2010的默认编码是UTF-8,delphi版字符串事先须经过AnsiToUtf8()转码才能跟C#版得到的十六进制字符串显示结果一致。

Delphi版:

function StrToHex(AStr: string): string;
var
i : Integer;
ch:char;
begin

  Result:='';
  for i:=1 to length(AStr)  do
  begin
    ch:=AStr[i];
    Result:=Result+IntToHex(Ord(ch),2);
  end;
end;


 

//***************************************************

C#版

   

 public string StrToHex(string str)
    {
        string strResult;
        byte[] buffer = Encoding.GetEncoding("utf-8").GetBytes(str);
        strResult = "";
        foreach (byte b in buffer)
        {
            strResult += b.ToString("X2");//X是16进制大写格式 
        }
        return strResult;
    }