株式会社サーバーワークス's job postings
- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
迷えるバックエンド / インフラエンジニアのみなさま、こんにちは。
新卒一年目の加藤です。
今日は、私が最近出会った謎の言語エラーについてご紹介します。
言語の設定をいじった記憶もないのに、ログインしたLinuxでなぜか日本語が入力できなかったり、出力できなかったり、と言った問題が発生しているあなたに耳より情報です。
それ、もしかしたら、Terminal(iTerm)の設定のせいかもしれません。
この時、ログインしたインスタンス上でlocaleを叩くと、
LANG="es_US.UTF-8"
LC_COLLATE="es_US.UTF-8"
LC_CTYPE="UTF-8"
LC_MESSAGES="es_US.UTF-8"
LC_MONETARY="es_US.UTF-8"
LC_NUMERIC="es_US.UTF-8"
LC_TIME="es_US.UTF-8"
LC_ALL=
と表示されました。明らかに”LC_CTYPE”の表記がおかしい。
Terminal(iTerm)には、ローカルのbashで用いている言語設定をログインしたLinuxでも引き継ぐ、という設定が標準で装備されています。今回のエラーは、この設定が原因だった様子。
解決するためには設定を解除します。
ただしこの設定を行うと日本語入力ができなくなってしまう場合があります。
その場合、日本語入力を使いたい環境の.bash_profileなどに、以下の言語設定を追記して解消しましょう。
export LANG="ja_JP.UTF-8"