下面就來介紹一下Linux系統(tǒng)查找替換非UTF-8編碼文件的方法。

開始之前,請(qǐng)先安裝enca這個(gè)軟件包。enca是Linux等系統(tǒng)下用來查看文件編碼和轉(zhuǎn)換文件編碼的工具。
下面一行Linux命令能夠查找當(dāng)前目錄下所有文件中,哪些文件不是UTF-8編碼。我對(duì)文件加了些限制,用find命令時(shí)候,排除了所有目錄下的.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編碼的文件,接下來再用一條命令將他們都轉(zhuǎn)換成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 {}” ;
當(dāng)你用命令2 全部轉(zhuǎn)換完成后,如果你期待命令1的輸出為空,那么你就錯(cuò)了。實(shí)際上英語(yǔ)字母的utf8編碼和ASCII編碼是一樣的。當(dāng)一個(gè)全是英文字母的文件用UTF8 w/o BOM編碼保存,那么enca會(huì)識(shí)別他是一個(gè)ACSII編碼的文件。所以,你猜到了,命令2做了一些無(wú)用功。
好啦,以上就是華軍小編帶給大家的全部?jī)?nèi)容了,是不是很簡(jiǎn)單呢?你學(xué)會(huì)了么?想了解更多的相關(guān)內(nèi)容,請(qǐng)隨時(shí)關(guān)注華軍資訊動(dòng)態(tài)吧,歡迎到華軍來下載哦!
eMule怎么設(shè)置啟動(dòng)時(shí)自動(dòng)更新服務(wù)器列表-eMule設(shè)置啟動(dòng)時(shí)自動(dòng)更新服務(wù)器列表的方法
eMule怎么啟用Windows7任務(wù)欄特效-eMule啟用Windows7任務(wù)欄特效的方法
eMule怎么使用UPnP來設(shè)置端口-eMule使用UPnP來設(shè)置端口的方法
您好,如有軟件收錄需求,請(qǐng)將軟件打包,并附上軟件名稱、軟件介紹、軟件相關(guān)截圖、軟件icon、軟著、營(yíng)業(yè)執(zhí)照(個(gè)人沒有營(yíng)業(yè)執(zhí)照請(qǐng)?zhí)峁?duì)應(yīng)的開發(fā)者身份證正反面以及手持身份證本人照片),發(fā)送至郵箱
https://user.onlinedown.net/login掃碼添加企業(yè)微信
如有產(chǎn)品建議或問題反饋,歡迎告訴我們,您的意見是我們進(jìn)步的動(dòng)力!
掃碼添加官方公眾號(hào)