<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Linux系統搜索替換非UTF-8編碼文件的方法

      [摘要]UTF-8是Linux系統下的一種可變長度的字符萬國碼,使用UTF-8碼就可以支持多種語言。但是某些文件并不是UTF-8編碼的,這個時候我們可以用命令來查找替換非UTF-8碼,下面就來介紹一下Lin...

        UTF-8是Linux系統下的一種可變長度的字符萬國碼,使用UTF-8碼就可以支持多種語言。但是某些文件并不是UTF-8編碼的,這個時候我們可以用命令來查找替換非UTF-8碼,下面就來介紹一下Linux系統查找替換非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做了一些無用功。

        以上就是Linux系統查找替換非UTF-8編碼文件的方法了,這樣一來就不用擔心Linux文件不是UTF-8編碼而無法顯示其他語言了。


      Linux是一套免費使用和自由傳播的類Unix操作系統




      日韩精品一区二区三区高清