如何将delphi中的字符串转换为16进制的字符串

joymouse 2003-01-28 10:15:17
比如"信息订阅"用ultraedit转换后的值是“D0C5CFA2B6A9D4C4”,但在delphi中该如何转换哪,痛苦
...全文
511 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephenxu 2003-04-15
  • 打赏
  • 举报
回复
请教 lincanwen(密码错误),那怎么把16进制的转换回ASCII码呢?

谢谢
lincanwen 2003-01-28
  • 打赏
  • 举报
回复
得到的是这样的: D0 C5 CF A2 B6 A9 D4 C4
16进制D0对应10进制是:D * 16 + 0 = 13 * 16 + 0 = 208
phalcon 2003-01-28
  • 打赏
  • 举报
回复
错了...
phalcon 2003-01-28
  • 打赏
  • 举报
回复
... 可是那得到的并不是D0C5CFA2B6A9D4C4啊
lincanwen 2003-01-28
  • 打赏
  • 举报
回复
就是取对应字节的ascii啊(通过ord)!然后用inttohex转为16进制。上面不是写的很清楚了吗。
phalcon 2003-01-28
  • 打赏
  • 举报
回复
老大 那用你上边的程序得到的那是什么字节?
lincanwen 2003-01-28
  • 打赏
  • 举报
回复
每个汉字都是2个字节。而每个字节对应一个ascii码,把这个ascii码转为16进制,然后在连起来,就可以了。如:
信 息 订 阅
ascii码:208 | 197 207 | 162 182 | 169 212 | 196
16进制 : D0 | C5 CF A2 B6 A9 D4 C4
phalcon 2003-01-28
  • 打赏
  • 举报
回复
试了一下 UE里确实是D0C5CFA2B6A9D4C4 不知道这是怎么来的
信息订阅 正确的汉字字节应该是4FE1606F8BA29605
lincanwen 2003-01-28
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var s,str:string;
i:integer;
begin
s:='信息订阅';
for i := 1 to length(s) do
begin
str:=str + inttohex(ord(s[i]),2);
end;
caption:=str;
end;
phalcon 2003-01-28
  • 打赏
  • 举报
回复
showmessage(widechar(strtoint('$'+'D0C5'))); //信
joymouse 2003-01-28
  • 打赏
  • 举报
回复
不行呀,有没有其他的办法?
Billy_Chen28 2003-01-28
  • 打赏
  • 举报
回复
var
s: string;
i: integer;//......
begin
i:= strtoint('$'+s);//......
end;

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧