Como corrigir a codificação de caracteres no bash (arch linux)


8

Eu tenho alguns problemas com a codificação de tremas alemães no bash. Principalmente está funcionando bem, mas quando estou digitando um comando inválido, a mensagem de erro gerada pelo bash contém sequências de escape estranhas e não os caracteres reais.

Aqui está um log, que mostra o 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 äöü

a configuração do meu /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 contém apenas os códigos de idioma de_DE:

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

locale resultado:

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=

Qual emulador de terminal você está usando?
Roman B.

@ RomanB: massa de vidraceiro, mas o problema é o mesmo se usar o shell bruto localmente, então esse é um problema básico.
Smerlin

@smerlin, não existe "o shell bruto", o console, o gnome-terminal, o urxvt, o xterm ou outro? Se você usa o console, o que acontece se você tentar "export TERM = linux"?
Alexander

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

Respostas:


1

Isso parece ter sido introduzido com o bash 4.2. Você pode relatar isso como um bug para os desenvolvedores do bash.


Concordo. Ele está dividindo o caractere unicode em seus bytes de componente, portanto, seu tratamento Unicode está desativado.
jpaugh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.