系統(tǒng)之家 - 系統(tǒng)光盤(pán)下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux查找替換非UTF-8編碼文件

Linux系統(tǒng)查找替換非UTF-8編碼文件的方法

時(shí)間:2016-02-24 15:59:59 作者:zhijie 來(lái)源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問(wèn): https://m.xitongzhijia.net/xtjc/20160224/67744.html 手機(jī)查看 評(píng)論

  UTF-8是Linux系統(tǒng)下的一種可變長(zhǎng)度的字符萬(wàn)國(guó)碼,使用UTF-8碼就可以支持多種語(yǔ)言。但是某些文件并不是UTF-8編碼的,這個(gè)時(shí)候我們可以用命令來(lái)查找替換非UTF-8碼,下面就來(lái)介紹一下Linux系統(tǒng)查找替換非UTF-8編碼文件的方法。

Linux系統(tǒng)查找替換非UTF-8編碼文件的方法

  開(kāi)始之前,請(qǐng)先安裝enca這個(gè)軟件包。enca是Linux等系統(tǒng)下用來(lái)查看文件編碼和轉(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編碼的文件,接下來(lái)再用一條命令將他們都轉(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ú)用功。

  以上就是Linux系統(tǒng)查找替換非UTF-8編碼文件的方法了,這樣一來(lái)就不用擔(dān)心Linux文件不是UTF-8編碼而無(wú)法顯示其他語(yǔ)言了。

標(biāo)簽 查找 替換

發(fā)表評(píng)論

0

沒(méi)有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見(jiàn)解

立即評(píng)論

以上留言?xún)H代表用戶(hù)個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門(mén)教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄