一些老的项目,文件编码用的还是gbk,很不利于扩展及维护。经常需要在程序中进行判断及转码,容易出现乱码现象。最好的方式就是将整个项目转成utf-8。那么如何批量将一个目录下的文件转编码?
思路
找出目录下的所有文件类型
遍历要转码的文件类型,如
.php
利用vim的
set fileencoding=utf8
进行转码
具体实现
设置~/.vimrc
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set ts=4
set expandtab
找出目录下的所有文件类型
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
转码的脚本
gbk_to_utf8.sh
#!/bin/bash
for i in `find -name \*.php`
do
vim -s gbk_utf8.vi $i
done
gbk_utf8.vi
:set fileencoding=utf8
:wq!
在当前目录下执行转码脚本:
./gbk_to_utf8.sh