Как исправить кодировку символов в bash (arch linux)


8

У меня есть некоторые проблемы с кодировкой немецких умлаутов в bash. В основном это работает нормально, но когда я набираю неверную команду, сообщение об ошибке, сгенерированное bash, содержит странные escape-последовательности, а не реальные символы.

Вот журнал, который показывает проблему:

[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=

Какой эмулятор терминала вы используете?
Роман Б.

@RomanB: замазка, но проблема та же, если использовать локальную оболочку raw, так что это проблема bash.
Смерлин

@smerlin, нет «необработанной оболочки», вы имеете в виду консоль, gnome-терминал, urxvt, xterm или другое? Если вы используете консоль, что произойдет, если вы попробуете "export TERM = linux"?
Александр

@ Александр То же самое:$ ö bash: $'\303\266': command not found
Роман Б.

Ответы:


1

Это похоже на bash 4.2. Вы можете сообщить об этом как об ошибке разработчикам bash.


Согласен. Он разбивает символ Unicode на составляющие его байты, поэтому его обработка Unicode отключена.
jpaugh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.