みなさんこんばんわミツです。今回はLinuxの文字コードについて解説していきたいと思います。
文字コードとは
文字コードとは、コンピュータ上で文字を利用するために各文字に割り当てたバイトコードのこと。
文字コードの種類について
多くのLinuxディストリビューションでは、文字コードとしてUTF-8を使用しています。ただWindowsなどの別OSで作成したファイルをLinuxに移動させて開くとなると文字コードが違うといったことになり文字化けする要因となったりします。そのため複数の文字コードを理解する必要があります。よく利用される文字コードの種類は下記となります。
文字コード | 説明 |
ASCII | 7ビットで表現される、128種類の英数字、記号、制御コードです |
Unicode | 32ビットで表現される。1つの文字コード体系で多言語処理を可能にするための文字コードです |
UTF-8 | Unicodeを使用した文字コード。1文字を1バイトから6バイトで表現できます |
EUC-JP | UNIX環境で標準的に使用していた日本語の文字コードです |
Shift-JIS | WindowsやMacOSで使用される日本語の文字コードです |
ISO-2022-JP | 電子メールなどでよく使用される日本語の文字コード(JISコード)です |
ISO-8859 | ASCIIを拡張した8ビットの文字コードで256種類の文字を表現できます |
fileコマンド
ファイル形式を調べるためのコマンドです。 テキストファイルの場合は、文字コードが表示されます。
書式
書式は以下となります。
$file [オプション] ファイル1 ファイル2
オプション
オプション | 説明 |
-b | 行の最初にファイル名を出力しない |
-i | mimeタイプ文字列で出力します |
-L | シンボリックリンクを辿るようにします |
-N | 出力時に空白の追加を行わない |
-n | 1つのファイルをチェックするごとに標準出力に出力します |
-z | 圧縮ファイルの中もチェックします |
実行例
freeの実行結果を紹介していきます。
-b
行の最初にファイル名を出力しない
-i
mimeタイプ文字列で出力します
-L
シンボリックリンクを辿るようにします
-N
出力時に空白の追加を行わない
-n
1つのファイルをチェックするごとに標準出力に出力します
-z
圧縮ファイルの中もチェックします
iconv
文字コードを変換して表示するコマンドです。
書式
書式は下記となります。
$iconv [オプション] [ファイル名]
オプション
オプション | 説明 |
-f ( --from-code) | 入力のエンコーディングを指定します |
-t(--to-code) | 出力のエンコーディングを指定します |
-c | 変換できなかった文字を出力しない |
-s (--silent) | 変換できなかった場合にエラーメッセージを表示しない |
--verbose | 処理中のメッセージ(ファイル名など)を表示する |
-o(--output) | 保存先のファイル指定します |
-l (--list) | 対応しているコードを表示します |
実行例
-f ( --from-code)、-t(--to-code)、-o
UTF-8のfile1ファイルをEUC-JPの文字コードへ変換してfile2に出力します。
$ iconv -f UTF-8 -t EUC-JP file1 -o file2
-c
変換できなかった文字を出力しない
$ iconv -c -f SJIS -t UTF-8 file1
-s (--silent)
変換できなかった場合にエラーメッセージを表示しない
$ iconv -s -f UTF-8 -t EUC-JP file1 -o file2
--verbose
処理中のメッセージ(ファイル名など)を表示する
$ iconv --verbose -f UTF-8 -t EUC-JP file1 -o file2
-l(--list)
処理中のメッセージ(ファイル名など)を表示する
nkf
文字コード変更してくれるコマンドです。
※インストールする必要がある。apt-get install nkf
オプション
オプション | 説明 |
-j | JISコードを出力します |
-e | EUCコードを出力します |
-s | Shift_JISコードを出力します |
-w | UTF8コードを出力します |
-g | ファイルの文字コードタイプを判別します |
実行例
実行例は下記となります。
-j
JISコードを出力します
-e
EUCコードを出力します
-s
Shift_JISコードを出力します
-w
UTF8コードを出力します
-g
ファイルの文字コードタイプを判別します
vi/vim
Linuxのテキストを編集するコマンドです。
そこで利用できる文字コードを変換するコマンドが下記となります。
書式
:set fileencoding=文字コード
:set fenc=文字コード
実行例
viコマンドで開いた後,「set encoding=utf-8」を実行すると変更します。
まとめ
まとめは以下になります。
・文字には文字コードというものがある。
・違うOS間でのファイルの移動や、ブラウザ閲覧で文字化けがよく起こる
・コマンドを正しく利用し、文字コードの変換を行えば閲覧できるような状態にできる。
以上になります。文字コードについては意識することなく使えていますが、たまにソフト間の差異により文字化けが起きたりするので対処法を把握しておいたほうが良いです。
本ブログでは他のLinuxについての記事も執筆しているのでよろしければご覧ください。