SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UNIXコマンド辞典

nkf

日本語の文字コードを変換する

対応OS: linux , freebsd, solaris

2015/05/20 08:00

nkf [-e] [-j] [-s] FILE...

 nkfコマンドは、FILE...で指定したファイルの内容から、文字コードを変換して出力します。

 日本語文字コードにはJISコードEUCコードシフトJISコード(SJISコード)などがあり、OSなどの環境の違いによって、作成されるテキストに異なる文字コードが使用される場合があります。現在のようにネットワークによって、複数のコンピュータが相互接続された環境においては、文字コードの異なるファイルがやり取りされるケースも少なくありません。

 nkfコマンドを使用して、文字コードの変換を行うことで、自身の環境と異なる文字コードを使用したファイルを読めるようにすることができます。

日本語文字コード

 日本語文字(全角文字)はコンピュータに格納される時には、2バイトの2進数でコード化されています。このコードを文字コードといいます

オプション
① -j
FILE...に指定したファイルの内容を、JISコードに変換して出力します。オプションを省略した場合にもJISコードに変換して出力します。
② -e
FILE...に指定したファイルの内容を、EUCコードに変換して出力します。
③ -s
FILE...に指定したファイルの内容を、シフトJISコードに変換して出力します。
引数
① FILE...
文字コードを変換するファイルをスペースで区切って指定します。ワイルドカードによる指定も可能です。
文字コードをEUCコードに変換する
[takeda]$ cat SJIS 
炎妖UC薬@C
天B
ファイル「SJIS」の文字コードはシフトJISコード
UNIX(Linux)で使用する文字コードはEUCコードのため文字化けして読めない
[takeda]$ nkf -e SJIS > EUC
オプション「-e」を指定して、EUCコードに変換したものをファイル「EUC」に出力
[takeda]$ cat EUC
これはEUCのファイルです。
[takeda]$
HINT!

 catコマンド

日本語文字コードも自動で認識

 nkfコマンドがEUCコードやSJISコードなどの変換を行うことは本文中で述べました。Windows環境で作成されたテキスト文書(これはSJISコード)をviで読もうとしたときnkf -eを使い、EUCコードに変換したテキストを生成し、それを読むという手順を踏まなければなりません。更新する場合などは、さらに更新後のテキストファイル(これはEUCコード)をnkf -sで再度SJISコードへ戻してやる必要があります。Windows環境においては、これら日本語コード系を自動認識して読み書きできる優れたフリーのエディタがいくつもあります。しかし、UNIX環境においてもemacs(またはMULE)を使えばこれらの問題を解決してくれます。ただ、emacsはカスタマイズ性に優れている分、初心者には敷居の高いものであり敬遠されがちなようです。筆者はemacsを使いますが、それでも使いこなせるようになるにはまだまだのようです。

関連タグ

UNIXコマンド辞典トップページに戻る

本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.

開発者必携!VBAスキルを証明する資格「VBAエキスパート」

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング