Cómo arreglar la codificación de caracteres en bash (arch linux)

8

Tengo algunos problemas con la codificación de diéresis alemanas en bash. Principalmente funciona bien, pero cuando escribo un comando no válido, el mensaje de error generado por bash contiene secuencias de escape extrañas y no los caracteres reales.

Aquí hay un registro que muestra el problema:

[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 configuración de mi /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 solo contiene las configuraciones regionales de_DE:

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

locale salida:

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
fuente
¿Qué emulador de terminal estás usando?
Roman B.
@RomanB: masilla, pero el problema es el mismo si usa el shell sin procesar localmente, por lo que este es un problema bash.
smerlin
@smerlin, no hay "el shell sin procesar", ¿te refieres a la consola, gnome-terminal, urxvt, xterm u otro? Si usa la consola, ¿qué sucede si intenta "export TERM = linux"?
Alexander
@Alexander Lo mismo:$ ö bash: $'\303\266': command not found
Roman B.

Respuestas:

1

Esto parece ser introducido con bash 4.2. Puede informar esto como un error a los desarrolladores de bash.

Alejandro
fuente
Estoy de acuerdo. Está dividiendo el carácter unicode en sus bytes componentes, por lo que su manejo Unicode está desactivado.
jpaugh