将windows里面的文件移动到linux里面,转换编码并且修改换行符
问题:从windows里面创建了文本文件,把它导入到linux虚拟机里面,出现了乱码问题,
下面是解决的过程
1.windows里面的文件默认是 gb2312编码,例如新建文本文件dosunix.txt,写入几个字
2.在securecrt中使用rz命令导入到linux中
3.导入到linux中使用file命令查文件格式
结果是 ISO-8859 text, with CRLF line terminators(是ISO-8859-1的编码格式,使用的^M$的换行)
直接打印会是乱码
4.需要 使用命令 iconv 转换(-o 用于生成新文件,不然就文件会被替换)
iconv -f gb2312 -t utf8 dosunix.txt -o dosunix.txt.utf8
得到dosunix2.txt.utf8 格式
dosunix.txt.utf8: UTF-8 Unicode text, with CRLF line terminators(UTF8编码,但是还是windows格式换行)
查询已经不是乱码,但是还是windows换行符
5.使用 命令 dos2unix转换(-n 用于生成新文件,不然就文件会被替换)
dos2unix -n dosunix.txt.utf8 dosunix.txt.utf8.$
则转换为linux默认的格式了
打印出来没有问题