文字コードをフォルダごと調べたり、まとめて変換したりする方法
nkfを使い、フォルダごとUTF-8からEUC-jpへ文字コードを変換したりする方法を説明します。
文字コード変換用のnkfコマンドをインストール
まずは文字コードを変換するためのnkf (Network Kanji Filter)をインストールします。
$ brew install nkf
※brew install
はHomebrewでパッケージをインストールするコマンドです。(なのでHomebrew入れといてください...)
成功すると下記の様な結果が出てきます。
==> Downloading http://dl.sourceforge.jp/nkf/59912/nkf-2.1.3.tar.gz
######################################################################## 100.0%
==> make CC=clang
==> make install prefix=/usr/local/Cellar/nkf/2.1.3 MKDIR=mkdir -p
? /usr/local/Cellar/nkf/2.1.3: 4 files, 348K, built in 14 seconds
フォルダ内のファイルの文字コードがどのように変換されるか調べる。
文字コードを調べたいフォルダに移動して、下記のコマンドを入力します。
$ nkf -We **/*.php | nkf --guess
EUC-JP (LF)
-W
はUTF-8と仮定して処理する。
-e
はEUCコードに変換する。という意味です。
→大文字が仮定して処理、小文字が変換する処理と覚えておきましょう。
**/*.php
は、再帰的に「.php」というファイルを探すというコマンドです。他のファイルにも適用できます。たとえば、「.inc」ファイルも一緒に調べたいときは**/*.php.inc
と記述します。
nkf --guess
はファイルの文字コードを特定できるコマンドです。上記の例だと「EUC-JP (LF)」という変換の予測がでています。文字コードの変換が失敗していると「BINARY」という表示がでてきます。
※nkfコマンドの一覧はこちら↓
Linuxコマンド集 - 【 nkf 】 文字コードを変換する:ITpro
「UTF-8」→「EUC-JP」に変換する。
上記のコマンドでうまく処理できると予測ができたら、
下記のコマンドで上書きします。
$ nkf -We --overwrite **/*.php
--overwite
は文字通り、上書きするというコマンドです。
もし指定したディレクトリ以下のファイルがちゃんと変換されているか調べたかったら、下記のコマンドを入力。
nkf --guess **/*.php
入力すると、こんな感じでファイルごとの文字コードが判定されます。
index.php: EUC-JP (LF)
01/index.php: EUC-JP (LF)
02/index.php: EUC-JP (LF)
03/index.php: EUC-JP (LF)
04/index.php: EUC-JP (LF)
05/index.php: EUC-JP (LF)
参考サイト
[文字コード変換]nkfコマンドのインストール | 本日も乙
nkfを使って、ディレクトリ以下のファイルを「EUC-JP」⇒「UTF-8」に一括変換する。 - カサヒラボ
テキストファイルの文字コードを調べるには(nkf編) - @IT
Author And Source
この問題について(文字コードをフォルダごと調べたり、まとめて変換したりする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/BEMU/items/9b16414c9fe354017838著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .