Come correggere la codifica dei caratteri in bash (arch linux)


8

Ho dei problemi con la codifica delle umlaut tedesche in bash. Funziona principalmente bene, ma quando sto digitando un comando non valido, il messaggio di errore generato da bash contiene strane sequenze di escape e non i caratteri effettivi.

Ecco un registro che mostra il 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 configurazione del mio /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 contiene solo le localizzazioni de_DE:

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

locale produzione:

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=

Quale emulatore di terminale stai usando?
Roman B.

@RomanB: stucco, ma il problema è lo stesso se si utilizza la shell grezza localmente, quindi questo è un problema bash.
smerlin,

@smerlin, non esiste "la shell grezza", intendi console, gnome-terminal, urxvt, xterm o altro? Se usi la console, cosa succede se provi "export TERM = linux"?
Alexander,

@Alexander Lo stesso:$ ö bash: $'\303\266': command not found
Roman B.

Risposte:


1

Questo sembra essere stato introdotto con bash 4.2. Puoi segnalarlo come bug agli sviluppatori bash.


Sono d'accordo. Sta suddividendo il carattere unicode nei byte dei suoi componenti, quindi la sua gestione Unicode è disattivata.
jpaugh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.