Comment réparer l'encodage de caractères dans bash (arch linux)

8

J'ai quelques problèmes avec l'encodage des trémas allemands en bash. Cela fonctionne généralement bien, mais lorsque je tape une commande non valide, le message d'erreur généré par bash contient des séquences d'échappement étranges et non les caractères réels.

Voici un journal qui montre le problème:

[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 äöü

la configuration de mon /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 contient uniquement les paramètres régionaux de_DE:

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

locale production:

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=
smerlin
la source
Quel émulateur de terminal utilisez-vous?
Roman
@RomanB: putty, mais le problème est le même si vous utilisez le shell brut localement, c'est donc un problème bash.
smerlin
@smerlin, il n'y a pas de "shell brut", voulez-vous dire la console, gnome-terminal, urxvt, xterm ou autre? Si vous utilisez la console, que se passe-t-il si vous essayez "export TERM = linux"?
Alexander
@Alexander Le même:$ ö bash: $'\303\266': command not found
Roman B.

Réponses:

1

Cela semble être introduit avec bash 4.2. Vous pouvez signaler cela comme un bug aux développeurs bash.

Alexandre
la source
Je suis d'accord. Il divise le caractère unicode en octets de composants, de sorte que sa gestion Unicode est désactivée.
jpaugh