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


UTF-8是Linux系统下的一种可变长度的字符万国码,使用UTF-8码就可以支持多种语言。但是某些文件并不是UTF-8编码的,这个时候我们可以用命令来查找替换非UTF-8码,下面就来介绍一下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做了一些无用功。


上一篇:Ubuntu系统下chmsee安装失败如何办?

下一篇:Linux系统下如何以root权限运行编译程序?


linuxutf-8 linuxgbk转utf8 linuxascii转utf8
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器