utf8的BOM问题,以及unix和window下回车的差别

utf8的BOM问题:

 

在批量将文件转码为unicode时,utf8 BOM文件头会多出\ufeff,是 因为BOM文件首部多一个不可见的字符。这个不可见字符可以通过vim -b filename 来查看到。转成unicode时就被顺便转换为了 unicode编码。转换结束后需要将这个\ufeff去掉。

 

sed -i 's/^\\ufeff//'${filename}

 

https://gist.github.com/2425762

 

vim文件中的^M的问题:

 

有 时脚本编辑文件后会多出^M之类的字符,^M其实就是回车符号导致的,windows下的文本文件中行尾为回车+换行(0A0D),unix中的文本行尾 只需一个换行(0D)即可,当winodws下的文件在unix中打开时,0A(回车)就被显示了出来,显示为控制字符,可以通过脚本去掉:

 

sed -i 's/^M//g'${filename}

 

需要注意,^M必须通过键盘打出来,Ctrl+v+M

 

https://gist.github.com/2425966

posted @ 2012-08-10 19:00  永哥  阅读(697)  评论(0)    收藏  举报