はじめに
linuxでファイルの文字コード変更するときのいくつかの方法メモです。
- viで変更する
これは他の記事で詳細に書いたのでそちらに任せて手抜きしますw
例としてはこんなカンジ。viで開いた後コマンドモードで行います。
:set fileencoding=文字コード
もしくは
:set fenc=文字コード
例) 保存形式をeuc-jpに変える
:set fenc=euc-jp
もっと詳しく
http://tweeeety.hateblo.jp/entry/2014/12/17/222935
- iconvで変更する
iconvコマンドで変更します。
コマンドのフォーマット
iconv -f ENCODING -t ENCODING INPUTFILE
オプション
-f : 変換元の文字コード
-t : 変換後の文字コード
-o : 出力するファイル
INPUTFILE : 変換元のファイル名
-oを指定しない場合は、標準出力に表示して終わります。
変換して保存したいときに-oオプションで出力先を指定します
例
iconv -f sjis -t utf-8 sample.pl -o sample.pl
参考
http://itpro.nikkeibp.co.jp/article/COLUMN/20131209/523510/
- nkfで変更する
nkfはnetwork kanji filterの略らしいです。略を初めて知りました。
そんなこんなでnkfで変換。デフォルトでは入ってないのでyumでinstallして使いましょう。
また、nkf -g ファイル名で文字コードやファイルフォーマットを判別してくれるのでちょっとしたときに使えます
※ 文字コードの判別
nkf -g sample.pl
EUC-JP (LF)
※ utf-8に文字コード変換してから判別してみる
nkf -w --overwrite sample.pl
nkf -g sample.pl
UTF-8 (LF)
オプション
-g : 自動判別
-w : UTF-8コードで出力
-e : EUC-JPコードで出力
-s : Shift-JISコードで出力
--overwrite : 直接上書き
参考
http://blog.layer8.sh/ja/2012/03/31/nkf_command_option/
- 一括で変更する
こちらは参考サイトのまんまなので、コマンドだけ引用させて頂いて参考サイトを載せておきます
※ 拡張子がpolのすべてのファイルをutf-8に一括変換する
find -name '*.pl' | xargs nkf --overwrite -w
※ ファイルタイプがファイル
のものをutf-8に一括変換する