LoginSignup
2

More than 1 year has passed since last update.

posted at

updated at

Ubuntuのtofuを日本語環境に直す

はじめに

日本語が文字化けして、四角に表示される(俗に言う、Tofu 豆腐 )であったため、日本語表示の環境を設定する。

環境

Ubuntu 16.04.5 LTS
Windows10
Vagrant

手順

環境変数を確認すると、英語環境であるため、環境変数を日本語に変更する

echo $LANG
en_US.UTF-8

2つの日本語パッケージ(language-pack-ja-baselanguage-pack-ja)をaptでインストールする

sudo apt install language-pack-ja-base language-pack-ja

ホームに移動して、.bashrcの一番下に下記を追加する

case $TERM in
    linux) LANG=C ;;
    *)     LANG=ja_JP.UTF-8;;
esac

解説
$TERMの環境変数には、ターミナルの種類がセットされる。因みに、自分の環境では、xterm-256colorがセットされている。ターミナルの種類がlinuxの場合は、ローカライゼーションをCにして、それ以外の場合は、日本語にしている。ターミナルの種類がlinuxというのは、クライアントからターミナルでSSH接続して使うのではなく、サーバーを直接触る場合になる。この場合、日本語にすると逆に文字化けを起こすようなので、英語環境にするために、Cをセットしている。サーバーを直接触る事はないよという場合であれば、LANG=ja_JP.UTF8の1行のみでもOK

.bashrcを実行して反映させる

source .bashrc

日本語パッケージをインストールすると、/var/lib/locales/supported.dに、jaというファイルが追加されるので中身を確認する。

cat /var/lib/locales/supported.d/ja
ja_JP.UTF-8 UTF-8

インストール済のロケールの一覧を表示して、ja_JP.utf8が表示される事を確認する

locale -a | grep ja

デフォルトのロケールを確認すると英語になっています

cat /etc/default/locale

#  File generated by update-locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:"

デフォルトのロケールを、日本語に変更する。エラー?と思われるメッセージが表示されるが、ちゃんと更新されています。

sudo update-locale LANG=ja_JP.UTF-8
*** update-locale: Warning: LANGUAGE ("en_US:") is not compatible with LANG (ja_JP.UTF-8). Disabling it.

変更された事を確認する。日本語が追加されて、英語はコメントされました

cat /etc/default/locale

#  File generated by update-locale
LANG=ja_JP.UTF-8
#LANGUAGE="en_US:"

vagrant環境である場合、Windows側(PowerShell側)の文字コード環境が原因である事もある。上記でも問題が解決しない場合は、↓
https://qiita.com/FmtWeisszwerg/items/ccd34acfb2e88c2fb35f

追加情報

↑にある、PowerShell側で、chcp 65001をしても解決しない場合、PowerShellのプロパティで、フォントをMSゴシックに変更すると、PowerShellで表示される日本語のtofuを正しく表示されるようになった。

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
What you can do with signing up
2