最近、OpenSuSEからArchLinuxに切り替えました。名前にUnicode文字が含まれているファイルは以前は問題なく表示されていましたが、切り替え後は文字化けが表示されます。たとえば、私の音楽ライブラリでは、QueensrÿcheはQueensrÿcheとして表示されます。
これはコンソールでも発生します。
Arch Linuxフォーラムで 関連するスレッド を積み上げましたが、答えが得られていません。
ロケールが正しく構成されていない可能性があります。最も可能性の高い理由は、ファイル名がUTF-8に格納されていても、端末(Konsoleだと思います)はレガシーISO-8859- *エンコーディングを期待していることです。
残りはわかりませんが、基本的な構成が正しいことを確認するためのいくつかの手順を次に示します。
このスクリプト も役立つ場合があります。
編集_/etc/locale.gen
_、ご希望の_.UTF-8
_ロケール(例:_en_US.UTF-8
_)はコメントされていません。
(デフォルトでは、Archはロケールを有効にしません。)
ロケールがまだ生成されていない場合は、_locale-gen
_を実行してロケールを生成します。
(現在生成されているロケールは_locale -a
_でリストされています。)
_/etc/locale.conf
_を編集し、_LANG=en_US.UTF-8
_を追加します。
(_LOCALE=
_の_/etc/rc.conf
_変数は同じことを行いますが、ある意味では、locale.confを優先して非推奨になっています。)
完全にログアウトし、環境変数を更新するために再度ログインします。
env | egrep '^(LANG|LC_)' | sort
を実行して、シェルの環境にあるロケール設定を確認します。
tr \\0 \\n < /proc/$PPID/environ | egrep '^(LANG|LC_)' | sort
を実行して、端末の環境を確認します。
どちらのコマンドも同じ出力を返すはずです。そうでない場合、それらbothには、少なくともLANG
値に「.UTF-8」が含まれている必要があります。 ( ".UTF-8"と ".utf8"は同一と見なすことができます。)また、どちらのコマンドも_LC_ALL
_をリストするべきではありません。