delphi 中文和数字转16进制有关问题
delphi 中文和数字转16进制问题
function StrToHexStr(const S: string): string;
//字符串转换成16进制字符串
var
I: Integer;
begin
for I := 1 to Length(S) do
begin
if I = 1 then
Result := IntToHex(Ord(S[1]), 4)
else Result := Result + IntToHex(Ord(S[I]), 4);
end;
end;
上面的函数可以对英文和数字进行转化,但是对于中文字符,转化的就不正常,哪位修改下,给我个完整的,谢谢诶!
如中文delphi 转化 4E2D658700640065006C007000680069
------解决方案--------------------
delphi直接有函数的:
procedure TForm1.Button1Click(Sender: TObject);
const
s:pwidechar='中文delphi';
var
buff:array[0..100] of char;
begin
fillchar(buff,100,0);
BinToHex(pchar(s),buff,length(s)*2); //这个可以直接转
ShowMessage(string(buff));
end;
------解决方案--------------------
function StrToHexStr(const S: string): string;
//字符串转换成16进制字符串
var
I: Integer;
begin
for I := 1 to Length(S) do
begin
if I = 1 then
Result := IntToHex(Ord(S[1]), 4)
else Result := Result + IntToHex(Ord(S[I]), 4);
end;
end;
上面的函数可以对英文和数字进行转化,但是对于中文字符,转化的就不正常,哪位修改下,给我个完整的,谢谢诶!
如中文delphi 转化 4E2D658700640065006C007000680069
------解决方案--------------------
delphi直接有函数的:
procedure TForm1.Button1Click(Sender: TObject);
const
s:pwidechar='中文delphi';
var
buff:array[0..100] of char;
begin
fillchar(buff,100,0);
BinToHex(pchar(s),buff,length(s)*2); //这个可以直接转
ShowMessage(string(buff));
end;
------解决方案--------------------
- Delphi(Pascal) code
function strtohex(str:string):string; var i:integer; begin for i:=1 to length(str) do begin result:=result+inttohex(ord(str[i]),2); end; end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage(strtohex('中国')); end;