linux所有文件编码转换,一行Linux命令查找所有非UTF-8编码的文件,再一行命令,都转换成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做了一些无用功:)

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux进阶新增用户25035 人正在系统学习中 相关资源:thinkphp响应式家政保洁月嫂服务 站模板+前后端源码-互联 文档…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月26日
下一篇 2021年3月26日

相关推荐