Chinaunix首页 | 论坛 | 博客
  • 博客访问: 237153
  • 博文数量: 22
  • 博客积分: 592
  • 博客等级: 中士
  • 技术积分: 344
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-22 14:49
文章分类

全部博文(22)

文章存档

2013年(2)

2012年(6)

2011年(14)

我的朋友

分类: LINUX

2011-10-08 14:07:21

    用utrledit打开unix文本文件时总会提示:是否将文件转换为dos格式。以前一直不知道为什么。前段时间做项目,在windows编辑 shell,然后用ftp上传到linux主机,发现不能运行。由于没有经验,分析了半天。

  不过最后终于得出了结论:dos和unix的文本文件格式有区别,这也是为什么前边提到utraledit会提示的原因。具体分析,在 utrledit下打开分别打开一个dos和unix的文本文件,然后选择hex 编辑,即可看到其编码内容。

  原来unix下的回车是用0x0A表示的,而dos下的回车则是0x0D0A。如果我们用wordpad打开unix的文件,会发现其换行处都不能正 确识别。

  分析了原因,就要找到解决的办法。在windows下用utraledit编辑后,可以在文件菜单下找到转换为unix格式,然后再上传主机。但是这 时还有问题,因为有的ftp工具可以选择以文本或者二进制格式传输,这时则必须选择二进制,否则传输时又会被改为dos格式。其实在unix下已经有一个 工具 dos2unix可以直接将dos格式文件转换为unix格式。看来各个系统间的区别不仅是在大的方面,也体现在这种细微的地方。

 

unix文本文件和windows/dos文本文件的格式区别主要是两点:
换行符:
                  unix(/n)                            windows/dos(/r/n)
Ctrl:            ^J                              ^M^J
Dec:           10                               13+10
Hex:            0A                              0D+0A
Code:          LF                               CR+LF
文件结束符:
                  unix                            windows/dos
Ctrl:            ^D                              ^Z
Dec:           04                               26
Hex:            04                              1A
阅读(10806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~