编码转换问题

qq_37329819 2017-01-16 05:47:17
[size=14px]不知道为何只有10分可给了。问个问题
\x00\x00\x00\x00\x1f\x6d\xb2\x71类似于这样的数据用Delphi
怎样转换为字符呢?希望有大神能帮忙回答一下,刚学,
function aaaa(src:string):string;
var
str,str2: string;
begin
str:='\x00\x00\x00\x00\x1f\x6d\xb2\x71';
........
result:=str2;
end;

求中间写法
...全文
205 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37329819 2017-01-17
  • 打赏
  • 举报
回复
引用 7 楼 frank_lee_cn 的回复:
首先,定义一个长度为String长度/4的byte数组。 然后, 每4个bytes一取, 然后再取这4个bytes的后2bytes, 这2bytes不就是16进制吗? 百度一下,16进制str如何转换成byte 将其值依序填到刚定义的byte数组。 最后,调用上面百度来的代码,应该就可以了。
求你好人做到底吧,不熟悉好难找喔,一直在找。你帮我把str转换为byte吧
Frank6600 2017-01-17
  • 打赏
  • 举报
回复
首先,定义一个长度为String长度/4的byte数组。 然后, 每4个bytes一取, 然后再取这4个bytes的后2bytes, 这2bytes不就是16进制吗? 百度一下,16进制str如何转换成byte 将其值依序填到刚定义的byte数组。 最后,调用上面百度来的代码,应该就可以了。
qq_37329819 2017-01-17
  • 打赏
  • 举报
回复
引用错了,不好意思哈
引用 4 楼 frank_lee_cn 的回复:
首先,分析String,每四个byte转换成一个byte,最终形成byte数组。 然后,将byte数组转换成String: // byte数组转换成String(网上查的) function ByteToString(const Value: TByteArr): String; var I: integer; S : String; Letra: char; begin S := ''; for I := Length(Value)-1 Downto 0 do begin letra := Chr(Value[I] + 48); S := letra + S; end; Result := S; end;
实在是不好意思,如果那你这个每四个byte转为一个bye是什么的呢,新手,别怪哈,比喻\x71转为什么呢 上面引用错了。
qq_37329819 2017-01-17
  • 打赏
  • 举报
回复
引用 3 楼 qq_37329819 的回复:
[quote=引用 楼主 qq_37329819 的回复:] [size=14px]不知道为何只有10分可给了。问个问题 \x00\x00\x00\x00\x1f\x6d\xb2\x71类似于这样的数据用Delphi 怎样转换为字符呢?希望有大神能帮忙回答一下,刚学, function aaaa(src:string):string; var str,str2: string; begin str:='\x00\x00\x00\x00\x1f\x6d\xb2\x71'; ........ result:=str2; end; 求中间写法
如果我手动查的话,是查那个ASCII的16进制码,可以查到相应的我想要的那个字符的。 Delphi 怎样转换为我想要的呢?[/quote] 实在是不好意思,如果那你这个每四个byte转为一个bye是什么的呢,新手,别怪哈,比喻\x71转为什么呢
Frank6600 2017-01-17
  • 打赏
  • 举报
回复
首先,分析String,每四个byte转换成一个byte,最终形成byte数组。 然后,将byte数组转换成String: // byte数组转换成String(网上查的) function ByteToString(const Value: TByteArr): String; var I: integer; S : String; Letra: char; begin S := ''; for I := Length(Value)-1 Downto 0 do begin letra := Chr(Value[I] + 48); S := letra + S; end; Result := S; end;
qq_37329819 2017-01-17
  • 打赏
  • 举报
回复
引用 楼主 qq_37329819 的回复:
[size=14px]不知道为何只有10分可给了。问个问题 \x00\x00\x00\x00\x1f\x6d\xb2\x71类似于这样的数据用Delphi 怎样转换为字符呢?希望有大神能帮忙回答一下,刚学, function aaaa(src:string):string; var str,str2: string; begin str:='\x00\x00\x00\x00\x1f\x6d\xb2\x71'; ........ result:=str2; end; 求中间写法
如果我手动查的话,是查那个ASCII的16进制码,可以查到相应的我想要的那个字符的。 Delphi 怎样转换为我想要的呢?
不得闲 2017-01-17
  • 打赏
  • 举报
回复
额,貌似Rtf的格式,你把这个复制放到RichEdit中试试看
jjpweb 2017-01-17
  • 打赏
  • 举报
回复
前段看python,好像有字符与编码的轻松转换。
看那山瞧那水 2017-01-17
  • 打赏
  • 举报
回复
lz没说是哪方面的数据,这个有点类似Telnet的ESC数据(c/c++),一些打印机也类似此格式
  • 打赏
  • 举报
回复
这数据\x00\x00\x00\x00\x1f\x6d\xb2\x71转换为字符也是乱码呀
lyhoo163 2017-01-16
  • 打赏
  • 举报
回复
这个数据,好象是“Rich格式”字符?

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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