テキストの表示と文字コード

13.5. テキストの表示と文字コード

テキストファイルを表示してみましょう。

cat #

cat パス は指定されたパスがテキストファイルだと信じて内容をターミナルに表示します。

前ページ 13.4. 便利な利用法 で紹介した方法で Finder からファイルのパスを指定してみましょう。

例として mi の章で使ったフォルダ /home/hwb/exercise/text を Finder で開いておきます。

12.6.1. ファイルの表示

ターミナルのプロンプトで cat までタイプしたあとで japanese-2 のアイコンをターミナルまでドラッグアンドドロップします。

cat /home/hwb/exercise/text/japanese-2.txt
21世紀に入り、人類は、国家を超えた地球大の交わりが飛躍的に強まる時代を迎えている。
...

日本語文章が表示されれば成功です。

文字コード変換 #

同様に japanese-1 を表示しようとすると文字化けします。

cat /home/hwb/exercise/text/japanese-1.txt
B8cGZ$OG-$G$"$k!#L>A0$O$^$@L5$$!#
...

これはターミナルが utf-8 を期待しているのにファイルの内容が別の文字コードを使っているためです。 文字コードを変換しましょう。

ターミナルの文字コード

ターミナルがどの文字コードを期待しているかは、メニューで

ターミナル環境設定 と選択後、上部からタブを「プロファイル」「詳細」と選んで表示される領域の下部、「言語環境」の「テキストエンコーディング」が Unicode (UTF-8) となっていることから確認できます。 ここから変更することもできますが、HWBではお勧めしません。

nkf コマンド #

日本語だが文字コードが分からないという場合は、 nkf -w というコマンドとオプションを覚えておくと utf-8 に変換して読むことができます。

nkf -w filename.txt
UTF-8に変換された日本語
nkf -w /home/hwb/exercise/text/japanese-1.txt
吾輩は猫である。名前はまだ無い。
...
変換された内容の保存

リダイレクションという機能で、> output.txt などど末尾に加えると、 変換結果を表示する代わりにファイルに保存することもできます。このときファイル名が output.txt になります。 詳しくは 後の章を参照してください。

25.5. パイプとリダイレクション

nkf はフリーソフトウェアで homebrew などからインストールできます。

iconv コマンド #

iconv コマンドは同様に変換機能を持ちますが、 より多く変換ができる代わりに、ユーザが変換元のエンコーディングを指定する必要があります。 つまり文字エンコーディングが分からないファイルには使えません。

EUC-JP で書かれたファイルを UTF-8 で表示するには以下のように行います。

iconv -f EUC-JP -t UTF-8 filename.txt
UTF-8に変換された日本語
便利な利用法 テキストの表示と文字コード エラー対応