ラッシュライフ -2ページ目

ラッシュライフ

渋谷で働くエンジニア。
勉強したことやらアップしていこうかと。
たまーに雑談するかも。

仕事で文字コードとか改行コードとか変更したりってことがあったのでメモ。

□nkfって何?
まずはnkfって何だって話だと思う。
簡単に説明すると。
文字コード変換のためのLinuxコマンドとのこと

□nkfをインストールfor mac
macにはデフォルトではnkfはインストールされてません。
てなわけで、インストールしましょう。
homebrew使えば一発。
brew install nkf

□nkfを使ってみる
インストールしたら後はコマンドを実行するだけ。
いくつかコマンドを紹介します。

・ファイルの文字コードを調べる
ファイルの文字コードを調べたい場合は-gをつける
$ nkf -g README.md
UTF-8
※改行コードも調べたい場合は--guessとつけるといいらしい。

・文字コードを変換する
文字コードを変えたい時は以下のコマンド。
-sみたいに変換したい文字コードをつけて実行する。

$ nkf -s README.md > README_test.md
$ nkf -g README_test.md
Shift_JIS

変換する文字コードは代表的なところだと下記

-j     JISコードに変換する。
-e     EUCコードに変換する。
-s     シフトJISコードに変換する。
-w     UTF8に変換する。

指定したファイルそのものを変えたい場合は--overwriteをつける。
$ nkf -w --overwrite README_test.md
$ nkf -g README_test.md
UTF-8
※$ nkf -w README_test.md > README_test.mdみたいに書くと空ファイルになってしまうので注意

変換するファイルの文字コードがわかってる場合
UTF-8のファイルをシフトJISに変換したとか明示的にわかってる場合は-Wをつける。
$ nkf -Ws --overwrite README_test.md
$ nkf -g README_test.md
Shift_JIS

代表的なコマンドは下記
-J     JISコードと仮定して処理する。
-E     EUCコードと仮定して処理する。
-S     シフトJISコードと仮定して処理する。
-W     UTF8と仮定して処理する。
・改行コードを置換する LFをCRLFにしたいみたいな時は-Lwを使う。
※LFに変えたい時は-Lu。
$ file README_test.md
README_test.md: Non-ISO extended-ASCII text, with LF, NEL line terminators
$ nkf -Lw --overwrite README_test.md
$ file README_test.md
README_test.md: UTF-8 Unicode text, with CRLF line terminators
こんな感じでファイルの文字コードを操作したい時はnkfを使うととっても便利ですね!!