经常遇到一个问题就是windows中默认的是GBK,而linux是UTF-8。需要对文件进行转换

查看文件编码

file filename
#如 file a.sh

文件编码转换

  1. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下
enconv -L zh_CN -x UTF-8 filename
#这个我经常用
  1. iconv 转换,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2

  1. 在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

Shell代码

set fileencoding=utf-8  

ASCII text, with CRLF line terminators

今天通过file命令查看 a.txt文件格式是否是unix格式,出现了如上。
最终的结果就是想让a.txt文件从windows的特殊符号转换为unix格式

#通过dos2unix a.txt命令将文件转换成功
dos2unix a.txt

查看文件格式

cat -v a.txt