bash(arch linux)で文字エンコードを修正する方法


8

bashでのドイツ語のウムラウトのエンコードに問題があります。ほとんど問題なく動作していますが、無効なコマンドを入力すると、bashによって生成されるエラーメッセージには、実際の文字ではなく、奇妙なエスケープシーケンスが含まれます。

これは問題を示すログです:

[root@myhost ~]# mkdir ä
[root@myhost ~]# ä
-bash: $'\303\244': Kommando nicht gefunden.
[root@myhost ~]# ü
-bash: $'\303\274': Kommando nicht gefunden.
[root@myhost ~]# ls
ä  äöü  Projects  tbb
[root@myhost ~]# cat äöü
äüö
[root@myhost ~]# rm ä
rm: Entfernen von „ä“ nicht möglich: Ist ein Verzeichnis
[root@myhost ~]# rmdir ä
[root@myhost ~]# rm äöü

私の設定/etc/rc.conf

LOCALE="de_DE.UTF-8"
DAEMON_LOCALE="no"
HARDWARECLOCK="localtime"
TIMEZONE="Europe/Berlin"
KEYMAP="de-latin1"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"

/etc/locale.gen de_DEロケールのみが含まれます。

de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15

locale 出力:

LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

どのターミナルエミュレータを使用していますか?
ローマンB.

@RomanB:puttyですが、ローシェルをローカルで使用しても問題は同じであるため、これはbashの問題です。
smerlin

@smerlin、「生のシェル」はありません。コンソール、gnome-terminal、urxvt、xterm、または別の意味ですか?コンソールを使用している場合、「export TERM = linux」を実行するとどうなりますか?
Alexander

@Alexander同じ:$ ö bash: $'\303\266': command not found
ローマンB.

回答:


1

これはbash 4.2で導入されたようです。これをバグとしてbash開発者に報告できます。


同意する。Unicode文字をコンポーネントバイトに分割しているため、Unicode処理はオフになっています。
jpaugh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.