Ubuntuでターミナルの日本語文字化けを直す

Ubuntuでは内部的にUTF-8を使っていますが、コンソールやターミナルでメッセージ、ファイル名が文字化けすることがよくあります。

ファイル名は「???????」などとなってしまう場合がありますが、この直し方です。

作業の前に

作業の前に注意なのですが、この直し方は応急処置な感じだと思います。

私も知識が浅いので断定は出来ませんが、ファイル名が非常にシビアな場合(文字化けすると絶対まずいファイル)は十分なテストをしてください。

詳しい方のツッコミがありましたらぜひ下のコメント欄からお願いします。

環境設定

まずは現在の表示ロケールを検査します。

$locale

LANG=
LC_CTYPE=”POSIX”
LC_NUMERIC=”POSIX”
LC_TIME=”POSIX”
LC_COLLATE=”POSIX”
LC_MONETARY=”POSIX”
LC_MESSAGES=”POSIX”
LC_PAPER=”POSIX”
LC_NAME=”POSIX”
LC_ADDRESS=”POSIX”
LC_TELEPHONE=”POSIX”
LC_MEASUREMENT=”POSIX”
LC_IDENTIFICATION=”POSIX”
LC_ALL=

LC_CTYPEが”POSIX”となっているとファイル名が化けて表示されます。これを日本語UTF-8に設定します。

設定は簡単

.bashrcの最後に以下の一文を追加してください。

$ vim .bashrc

export LC_CTYPE=ja_JP.UTF-8

これでターミナルで日本語が表示されます。

SVNのメッセージエラーも

ちなみにsvnなどで日本語メッセージが表示できないエラー

svn: Can’t convert string from ‘UTF-8’ to native encoding:

は、

export LC_MESSAGES=ja_JP.UTF-8

とすることで直ります。