8
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ファイルの文字コードを変換する。vi、iconv、nkf (nkfの文字コード判定とか一括変換は便利)

Posted at

はじめに
linuxでファイルの文字コード変更するときのいくつかの方法メモです。

  1. viで変更する
    これは他の記事で詳細に書いたのでそちらに任せて手抜きしますw
    例としてはこんなカンジ。viで開いた後コマンドモードで行います。

:set fileencoding=文字コード
もしくは
:set fenc=文字コード
 
例) 保存形式をeuc-jpに変える
:set fenc=euc-jp
もっと詳しく
http://tweeeety.hateblo.jp/entry/2014/12/17/222935

  1. 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/

  1. 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/

  1. 一括で変更する
    こちらは参考サイトのまんまなので、コマンドだけ引用させて頂いて参考サイトを載せておきます

※ 拡張子がpolのすべてのファイルをutf-8に一括変換する

find -name '*.pl' | xargs nkf --overwrite -w

※ ファイルタイプがファイルのものをutf-8に一括変換する

find . -type f -print0 | xargs -0 nkf --overwrite -w -Lu

参考
http://www.yukun.info/blog/2008/01/euc-to-utf8.html

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?