当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-04 0:22 

注册: 2009-05-29 22:48
帖子: 41
送出感谢: 0 次
接收感谢: 0 次
比如一个文本文件.只包含一句话.hello world.
用od命令读出一串8进制数..
怎么才能从那串八进制数中还原出"hello world"的信息呢?

如果是图片用 od 读出呢??..怎么还原出一张图...

虽然这个好像没什么实用..还是想知道.

顺便问下..如果文件比较大..在终端用 od 命令的话,,不能完全显示(旁边的滚动条拉到最顶上时数据都满的)..那要怎样才能把这些数字保存下来呢?


三个问题..


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-04 16:15 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
当然可以还原,不过你需要了解的文本的编码问题。 你应该知道,即使是hello world ,也简单的几个英文字符,你保存成 utf8还是unicode格式,两个文件的二进制都是不同的


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-04 23:14 
头像

注册: 2009-04-11 23:46
帖子: 4029
系统: Arch Linux
送出感谢: 11
接收感谢: 110
引用:
如果文件比较大..在终端用 od 命令的话,,不能完全显示(旁边的滚动条拉到最顶上时数据都满的)..那要怎样才能把这些数字保存下来呢?


重定向
代码:
od file > destination_file


_________________
我的博客 http://blog.lilydjwg.me/
Dropbox,你值得拥有。
提问的智慧
Arch Linux 中文论坛

我的vimrc: http://git.io/vimrc


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-05 10:19 

注册: 2009-05-29 22:48
帖子: 41
送出感谢: 0 次
接收感谢: 0 次
dbzhang800 写道:
当然可以还原,不过你需要了解的文本的编码问题。 你应该知道,即使是hello world ,也简单的几个英文字符,你保存成 utf8还是unicode格式,两个文件的二进制都是不同的


这个我知道.能说下具体怎么做吗?


有听说如果是PNG的二进制码的话,,要自己写个文件头,然后就能够还原..但是既然是读取一个文件,总不会给漏掉个文件头吧..

图片先不说..那个hello world的文本要怎样还原出来呢?假设编码是utf-8的话.


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-05 12:44 

注册: 2006-03-10 15:10
帖子: 3182
地址: xi'an China
送出感谢: 0 次
接收感谢: 2
假定你的文本文件内容为(windows或linux下默认编码即可,没有文件头:比如windows下记事本另存为utf8时,就会添加)
代码:
hello world


运行
代码:
od filename.txt


结果为(我的系统是小端的,大端的会与此不同):
代码:
0000000 062550 066154 020157 067567 066162 000144
0000013


od 的工作原理不多说了:
引用:
od prints the offset in octal, and each group of file data is a C short int's worth of input printed as a single octal number.


下面只简单看一下 062550 是怎么由“he”生成的
h 的 ASCII 码0x68, 二进制 0110 1000
e 的 ASCII 码0x65, 二进制 0110 0101

od 将其作为短整型用8进制显示出来,在小端机器上,该短整型 高8位为 0x65, 低8位为 0x68
于是该短整数:
代码:
0110 0101 0110 1000


为了容易看一点
代码:
0 110 010 101 101 000


也就是
代码:
0 6 2 5 5 0


至于怎么还原回去,不用多说了吧?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个文本文件用od命令读出后能不能还原?
帖子发表于 : 2009-09-06 14:15 

注册: 2009-05-29 22:48
帖子: 41
送出感谢: 0 次
接收感谢: 0 次
我能再贪心的问下。。图片怎么还原吗?

这个好像比较复杂了。。 :em06

不然指个方向给我吧?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译