有时候需要在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”。