Cara memperbaiki pengkodean karakter di bash (arch linux)


8

Saya memiliki beberapa masalah dengan penyandian umlaut Jerman di bash. Sebagian besar berfungsi dengan baik, tetapi ketika saya mengetik perintah yang tidak valid, pesan kesalahan yang dihasilkan oleh bash berisi urutan pelarian yang aneh dan bukan karakter yang sebenarnya.

Berikut ini adalah log, yang menunjukkan masalah:

[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 äöü

konfigurasi saya /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 hanya berisi lokal de_DE:

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

locale keluaran:

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=

Emulator terminal apa yang Anda gunakan?
Roman B.

@ RomanB: dempul, tetapi masalahnya sama jika menggunakan shell mentah secara lokal, jadi ini adalah masalah bash.
smerlin

@merlin, tidak ada "shell mentah", maksud Anda konsol, gnome-terminal, urxvt, xterm atau yang lain? Jika Anda menggunakan konsol, apa yang terjadi jika Anda mencoba "export TERM = linux"?
Alexander

@Alexander Hal yang sama:$ ö bash: $'\303\266': command not found
Roman B.

Jawaban:


1

Ini sepertinya diperkenalkan dengan bash 4.2. Anda dapat melaporkan ini sebagai bug ke pengembang bash.


Saya setuju. Itu membagi karakter unicode ke byte komponennya, sehingga penanganan Unicode dimatikan.
jpaugh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.