Delphi 2010里,如何将Unicode字符串转换成十六进制字符串并返回?

2026-04-10 20:515阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计412个文字,预计阅读时间需要2分钟。

Delphi 2010里,如何将Unicode字符串转换成十六进制字符串并返回?

我正在使用Delphi 2010,需要将字符串转换为十六进制字符串,然后再将十六进制字符串转换回原始的Unicode字符串。例如,我的字符串是:МихаилВасильевичМоно моносо мо。

我正在使用Delphi 2010,我需要能够将字符串转换为十六进制字符串,然后才能将该十六进制字符串转换回原始的unicode字符串.

例如,我的字符串是:МихаилВасильевичЛомоносов

我能够使用Warren P’s StringToHex16 snippet here(我粘贴下面的Warren的片段)将字符串转换为十六进制字符串,但我不知道如何将该十六进制字符串转换回原始的unicode字符串.

Delphi 2010里,如何将Unicode字符串转换成十六进制字符串并返回?

function StringToHex16(str: string): string; var i:integer; s:string; begin s:=''; for i:=1 to length(str) do begin s:=s+inttohex(Integer(str[i]),4); end; result:=s; end;

使用链接的StringToHex16给我这个十六进制字符串:

041C04380445043004380301043B002004120430044104380301043B044C04350432043804470020041B043E043C043E043D043E03010441043E0432

我对这个主题有点天真,我很感激您可以提供任何帮助将此十六进制字符串转换回原始输入.

链接函数为输入字符串中的每个字符生成四个十六进制数字,因此您的反函数需要使用四个字符的块并将它们转换为一个.函数使用IntToHex将输入字符串的数字字符代码转换为输出字符,而IntToHex的反函数是带有十六进制前缀的StrToInt,所以让我们使用它.

function HexToString16(const str: string): string; var i: Integer; code: string; begin Result := ''; i := 1; while i < Length(str) do begin code := Copy(str, i, 4); Result := Result + Chr(StrToInt('$' + code)); Inc(i, 4); end; end;

此函数假定输入是由StringToHex16或类似的东西生成的.如果它不包含四个十六进制数字的倍数,则行为未定义.

本文共计412个文字,预计阅读时间需要2分钟。

Delphi 2010里,如何将Unicode字符串转换成十六进制字符串并返回?

我正在使用Delphi 2010,需要将字符串转换为十六进制字符串,然后再将十六进制字符串转换回原始的Unicode字符串。例如,我的字符串是:МихаилВасильевичМоно моносо мо。

我正在使用Delphi 2010,我需要能够将字符串转换为十六进制字符串,然后才能将该十六进制字符串转换回原始的unicode字符串.

例如,我的字符串是:МихаилВасильевичЛомоносов

我能够使用Warren P’s StringToHex16 snippet here(我粘贴下面的Warren的片段)将字符串转换为十六进制字符串,但我不知道如何将该十六进制字符串转换回原始的unicode字符串.

Delphi 2010里,如何将Unicode字符串转换成十六进制字符串并返回?

function StringToHex16(str: string): string; var i:integer; s:string; begin s:=''; for i:=1 to length(str) do begin s:=s+inttohex(Integer(str[i]),4); end; result:=s; end;

使用链接的StringToHex16给我这个十六进制字符串:

041C04380445043004380301043B002004120430044104380301043B044C04350432043804470020041B043E043C043E043D043E03010441043E0432

我对这个主题有点天真,我很感激您可以提供任何帮助将此十六进制字符串转换回原始输入.

链接函数为输入字符串中的每个字符生成四个十六进制数字,因此您的反函数需要使用四个字符的块并将它们转换为一个.函数使用IntToHex将输入字符串的数字字符代码转换为输出字符,而IntToHex的反函数是带有十六进制前缀的StrToInt,所以让我们使用它.

function HexToString16(const str: string): string; var i: Integer; code: string; begin Result := ''; i := 1; while i < Length(str) do begin code := Copy(str, i, 4); Result := Result + Chr(StrToInt('$' + code)); Inc(i, 4); end; end;

此函数假定输入是由StringToHex16或类似的东西生成的.如果它不包含四个十六进制数字的倍数,则行为未定义.