现在的位置: 首页 > 综合 > 正文

Linux与Windows的文本文件格式转换,解决中文乱码和换行问题

2013年10月08日 ⁄ 综合 ⁄ 共 672字 ⁄ 字号 评论关闭

有时候需要在windows下查看Linux下的文本文件,但是会出现中文乱码和换行符的问题。这是因为Windows和Linux下的文件编码格式不同造成的。要解决此问题我使用如下方法:

首先下载dos2unix和unix2dos这两个软件,ubuntu中下载:

sudo apt-get install dos2unix;sudo apt-get unix2dos

在linux下可以这样转换换行格式:

unix2dos -k -n File1 File2

 参数:
  -k : 保留该文件原来的mtime时间格式(不更新文件上次内容经过修改的时间)

  -n : 保留原来的旧文件,将转换后的内容输出到新文件,如:dos2unix -n old new

解决中文乱码问题

iconv -f UTF-8 -t GBK File1 -o File2

(File1是源文件,File2是你想转换成的文件)

 

知识普及:

window文件换行是 “/r/n”, 而Linux文件的换行是 “/n”, 所以将文件从window 下直接复制到 Linux 和就有问题。 用vim 打开挥发现 ^M 的字符在每一行尾。 
但是好多软件,会直接去处理这些区别。 比如notepad++, 会打开文件如果发现是“/r” 或者是“/r/n” 都会显示新行。 perforce 也对此有处理,比如先将文件从window下提交到perforce,然后再从perforce同步到Linux/Unix平台下, perforce 会自动转换“/r/n” 到“/n“;反之,文件从Linux提交到perforce, 在同步到Windows, 这是perforce把“/n” 转换为“/r/n”。

抱歉!评论已关闭.