当前位置:K88软件开发文章中心电脑基础基础应用05 → 文章内容

Linux系统查找替换非UTF-8编码文件的方法

减小字体 增大字体 作者:华军  来源:华军资讯  发布时间:2019-1-31 15:37:55

下面就来介绍一下Linux系统查找替换非UTF-8编码文件的方法。  开始之前,请先安装enca这个软件包。enca是Linux等系统下用来查看文件编码和转换文件编码的工具。  下面一行Linux命令能够查找当前目录下所有文件中,哪些文件不是UTF-8编码。我对文件加了些限制,用find命令时候,排除了所有目录下的.svn目录,且只查找后缀为.php的文件。  命令1:  jw@~/sqlite>  find 。 ! -iregex ‘.*\.svn.*’ -type f -name ‘*.php’ -exec bash -c “enca -L zh_CN {}|grep GB2312 》 /dev/null && echo {}” \;  ./sqlite_utility.php  ./sqlite_result.php  ./sqlite_forge.php  ./sqlite_driver.php  既然找到了这些非UTF8编码的文件,接下来再用一条命令将他们都转换成UTF8编码。  命令2:  jw@~/sqlite>  find . ! -iregex ‘.*\.svn.*’ -type f -name ‘*.php’ -exec bash -c “enca -L zh_CN {} | grep GB2312 》/dev/null && enconv -L zh_CN -x UTF-8 {}” \;  当你用命令2 全部转换完成后,如果你期待命令1的输出为空,那么你就错了。实际上英语字母的utf8编码和ASCII编码是一样的。当一个全是英文字母的文件用UTF8 w/o BOM编码保存,那么enca会识别他是一个ACSII编码的文件。所以,你猜到了,命令2做了一些无用功。       好啦,以上就是华军小编带给大家的全部内容了,是不是很简单呢?你学会了么?想了解更多的相关内容,请随时关注华军资讯动态吧,欢迎到华军来下载哦!

Linux系统查找替换非UTF-8编码文件的方法