Как исправить кодировку символов в 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.