LMDE2/MATE ロケール文字セットが一致しません。

LMDE2/MATE ロケール文字セットが一致しません。

私はLinux Mint Debian Edition 2 "Betsy"(利用可能なすべてのアップデートが適用されたRCでインストールされています)とMATEデスクトップ環境を備えたコンピュータを持っています。私の問題は、一部のアプリケーションで私の母国語(ポーランド語)で使用される特殊文字が含まれているため、一部のフォルダとファイルが正しく処理されないことです。

より具体的には、通常、合致端末、Pluma(MATEテキストエディタ)、およびcaja(ファイルマネージャ)でAlt +文字で入力されるポーランド語の特殊文字、およびおそらく確認していないいくつかの文字は無視されます(印刷された文字はありません) 。 - PlumaとCajaでは)または疑問符(合致端末で)に置き換えられます。合致端末で実行すると、vimも特殊文字を疑問符で置き換える方法で実行されます。

私はこれがシステム全体の問題だとは思わない。なぜ?なぜなら、他のttyに切り替えて端末にこれらの特殊文字を入力しようとすると、何の問題も発生しないからです。 mate-terminalでマークされたフォルダは、zdj?cia他のttyに表示されるフォルダで正しくラベル付けされていますzdjęcia。 vimはターミネータで実行しても問題が発生しないため、問題はMATEに関連しているようです。

また、次の方法でデバッグを試みました。 mate-terminalでホームディレクトリ(ポーランド語の特殊文字を含むファイルとディレクトリを含む)を一覧表示し、出力をテストファイルにlsリダイレクトしました。その後、別のttyに切り替えてcatファイルをテストしました。文字が正しく印刷されました。

私はそれを試しましたdpkg-reconfigure locales。言語パックはMATE Con​​trol Centerを介してインストールされました(そしてその過程で再インストールされました)。

次は何を試すべきですか?

編集する:

mate-terminalグラフィック環境では:

$ロケール
ロケール:LC_ALLをデフォルトのロケールに設定できません。そのファイルやディレクトリはありません。
LANG=en_GB.UTF-8
言語=
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=\"pl_PL.UTF-8\"
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=\"pl_PL.UTF-8\"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=\"pl_PL.UTF-8\"
LC_NAME=\"pl_PL.UTF-8\"
LC_ADDRESS=\"pl_PL.UTF-8\"
LC_TELEPHONE=\"pl_PL.UTF-8\"
LC_MEASUREMENT=\"pl_PL.UTF-8\"
LC_IDENTIFICATION=\"pl_PL.UTF-8\"
LC_ALL=

tty1(文字エンコーディングはうまく機能します):

$ロケール
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=

編集する:

grep -Rs pl_PL /etc ~/.?*「バイナリファイル×一致パターン」を削除してパイピングすると、次のようになりますsort | uniq

/etc/default/locale
/etc/locale.alias
/etc/locale.gen
/etc/mdm/locale.conf
/ホーム/マルタ/../marta/.bash_history
/home/marta/../marta/.config/user-dirs.locale
/home/marta/../marta/.linuxmint/mintMenu/apt.cache
/home/marta/../marta/.pam_environment
/home/marta/../marta/.xsession-errors
/home/marta/.bash_history
/home/marta/.config/user-dirs.locale
/home/marta/.linuxmint/mintMenu/apt.cache
/home/marta/.pam_environment
/home/marta/.xsession-errors

はい、このコンピュータは実際に私のものではありませんが、大丈夫です:)

別の編集:

ロケール設定を含むファイルの内容:

$cat/etc/default/locale
LANG="en_GB.UTF-8"
LANGUAGE="en_GB:en"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
$猫/home/marta/.pam_environment
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME=en_GB.UTF-8
LC_MONETARY="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
$猫/home/marta/.config/user-dirs.locale
pl_PL

答え1

LC_変数の値が二重引用符で囲まれた.pam_environmentファイルがある可能性があります。

# WRONG
LC_TIME="en_US.UTF-8"

代わりに、次のようにする必要があります(引用符を除く)。

LC_TIME=en_US.UTF-8

したがって、.pam_environmentファイルを削除するか、

mv ~/.pam_environment ~/.pam_environment.off

または、値の周囲の二重引用符を削除するように編集します。

perl -i.bak -pe 's/"//g' ~/.pam_environment

詳細については、次を参照してください。 」生成されたロケールファイルには二重引用符を含めないでください。Githubのlinuxmint / mintolocaleから

関連情報