免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3614 | 回复: 4

[文本处理] 请问如何实现字符和二进制之间的转换? [复制链接]

论坛徽章:
0
发表于 2014-08-01 11:45 |显示全部楼层
如题,如果说我有一个文件是一个任意字符的文件,我想把他们转成二进制存进另一个文件里面,我是使用xxd命令的,但是xxd命令除了转换字符还会给出多余的信息(例如符号"~"会对应01111110,但是xxd会把它转换为0000000: 01111110 00001010),更重要的是xxd只能够把字符转换成二进制,但是无法把二进制还原成字符。我试过其他方式,但是很多都无法正常的还原,会有乱码。求大神赐教。

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
发表于 2014-08-01 11:47 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2014-08-02 23:27 |显示全部楼层
这个确实可以转,但是又乱码。thanks  anyway.回复 2# zooyo


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2014-08-03 00:37 |显示全部楼层
回复 1# caowenqq17

$ echo "123" | perl -ne '{s/(.)/unpack("B8",$1)." "/ges;print"$_\n"}'
00110001 00110010 00110011 00001010

$ cat FILE
00110001 00110010 00110011 00001010

$ perl -ne '{s/([01]+)\s*/pack("B8",$1)/ges;print"$_"}' FILE
123

论坛徽章:
0
发表于 2014-08-03 02:01 |显示全部楼层
这正是我需要的,非常感谢!!回复 4# jason680


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP