最近遇到服务器网站的目录下的所有文件的编码全是gb2312,直接用cat或者vim打开显示都是乱码,网页显示出来当然也全是乱码,所以要解决怎么把目录下的所有文件(包括子文件夹里的文件)由gb2312转码成utf-8的问题。网上一顿搜,总共用了三种方法,最后终于把问题解决了。
第一种方法是利用vi编辑器,打开需要转码的文件。
:set fileencoding
这样可以查看文件当前的编码格式。
:set fileencoding=utf-8
说这样能把当前的文件转码成utf-8。但是失败了,直接打开还是显示乱码,更别说浏览器浏览的页面了。而且即使能转码成功,站点目录下的文本文件那么多,不可能一个个挨个打开然后这样设置吧,工作量巨大。
第二种方法是利用iconv。iconv系统默认就已经安装了的。通过命令:
iconv -f gb2312 -t utf-8 abc.html
这样确实把abc.html的编码转换成了utf-8。这样是将转换后的文本