GUIなしのLinuxのコンソールで文字化け・・・「LANG=C」ではなく「fbterm」で解決
GUI無しでインストールしたLinuxの端末でコマンド打ったら、文字化け問題に遭遇。
とりあえず、色々なサイトで調べてさまよう。
● 【初心者でも知っておきたい】Linuxでの文字コードの確認と変更方法
とりあえず、基礎的知識を学ぶ。
● Linuxねた帳: Linux Tips: コンソールでの文字化けを解消するには
やってみたものの、解決せず。
● 【 localectl 】コマンド――ロケール設定の確認と変更:Linux基本コマンドTips(262) - @IT
これもうまくいかない。
● 【 localectl 】 システムのロケールやキーボードレイアウトを管理する 【 Linuxコマンドまとめ 】 | LFI
勉強になる・・・がうまくいかず。
● コンソール上でバイナリ・ファイルを表示させたら,文字化けが直らない | 日経 xTECH(クロステック)
これは今は、関係無いし。
● lsコマンドで日本語が文字化けする - vorfee's Tech Blog
『原因:3 ターミナルが日本語を扱えない』?
環境変数を正しく設定して日本語のフォントをインストールしたのに文字化けするときは、ターミナルが日本語に対応していない。
この場合の文字化けは四角い記号になったり、複雑な漢字の羅列になったりとさまざまである。
マルチバイト文字を扱えないターミナルエミュレータといえば、シリアルコンソールである。
なぬ?
解決法
マルチバイト文字を正しく扱えるターミナルを使用する。
ということは、今使っているターミナルはもしかしたらマルチバイト文字を扱えないものが使用されている可能性があるということか?
いくら言語設定したとしても、できない理由はこれ?
しかし、疑問が。
GUI下のkonsoleなどのターミナルの場合は文字化けしないのに、GUI無しの場合に文字化けするのはなぜなのか?
ふとGUI入りのLinuxで「Ctl + Alt + F1」で端末切り替えて同じ作業をすると同じ文字化けが。
どうも、端末が別物のようだ。
それで色々調べてみたが、おそらく非GUI下で動く端末は「Linuxコンソール」と呼ばれるカーネル内部にある「システムコンソール」が使われていて、たぶんこやつがマルチバイトを扱えないのでは無いかと思う。
文字化け対策で
LANG=C
にするのは、ターミナル側がマルチバイト対応してないから、仕方ないので日本語を切るという対応で対処しているのか、と勝手に納得。
しかし、それだと日本語表記にしないと文字化けしてしまうケースで対処ができない。
CUI環境のみで対応できる方法は無いかと調べてみると、「KMSCON」なるものが出てきた。
なので、試してみる。
● kmscon で Linux コンソールを日本語対応に: Aiming Off のブログ
しかし、どうもうまくいかない。
他に方法が無いか調べてみると、「fbterm」なるものが出てきた。
● X不要で動作する高機能ターミナルエミュレータFbTerm - ITmedia エンタープライズ
● Debian コンソール日本語環境を試してみた fbterm [Green-pen miyagi]
● 数年ぶり更新(CUI日本語変) - こつこつDebian
こやつは標準でインストールされていた。
そこで、素のCUI端末で
$ fbterm
とやる。
以上で文字化け解決。日本語表示されるようになった。
たったこれだけなのに長かった。
コンソール(端末)は意外と奥が深いな。
今回は色々と勉強になった。
他参考
● debian9のコンソール画面を高解像度にして充実CUIライフ | atominux
● fbtermの日本語表示.uim-fepとuim-anthyで日本語入力も.ついでに,vimの256色化も - Qiita
シェルとコンソールの違いについて
コンソールの切り替えって、
# chvt 1
でも出来るのをはじめて知った。
● Linuxのローカライゼーション系LANG変数:langについて
LANG変数について
フォントの変更について
● Fontconfigでデフォルトのフォントを設定する方法 | 普段使いのArch Linux
● Ubuntuサーバーの「コンソールフォント」を変更する方法 | LFI
● Ubuntuサーバーの日本語化-文字化けに対処する! | 経済的自由を得てセミリタイヤ-悠々自適生活!
● CUI(コンソール)を日本語化する方法 | 猿まね電子工作
● Debian CUIでの文字化けを直す | Qrunch(クランチ)
● Linuxねた帳: Linux Tips: コンソールでの文字化けを解消するには
● Debian/Ubuntuのデフォルトロケールを変更する - Qiita
● ユーザのロケール設定方法 | server-memo.net
● RHEL7 のシステムロケールを変更する - Red Hat Customer Portal