Cách sửa mã hóa ký tự trong bash (arch linux)


8

Tôi có một số vấn đề với việc mã hóa tiếng Đức trong bash. Nó chủ yếu hoạt động tốt, nhưng khi tôi gõ một lệnh không hợp lệ, thông báo lỗi được tạo bởi bash chứa các chuỗi thoát lạ và không phải là các ký tự thực tế.

Đây là một bản ghi, cho thấy vấn đề:

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

cấu hình của tôi /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 chỉ chứa các ngôn ngữ de_DE:

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

locale đầu ra:

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=

Trình giả lập thiết bị đầu cuối nào bạn đang sử dụng?
La Mã B.

@RomanB: putty, nhưng vấn đề là như nhau nếu sử dụng shell thô cục bộ, vì vậy đây là một vấn đề bash.
smerlin

@smerlin, không có "shell raw", ý bạn là console, gnome-terminal, urxvt, xterm hay cái khác? Nếu bạn sử dụng bàn điều khiển, điều gì xảy ra nếu bạn thử "export TERM = linux"?
Alexander

@Alexander Giống nhau:$ ö bash: $'\303\266': command not found
Roman B.

Câu trả lời:


1

Điều này dường như được giới thiệu với bash 4.2. Bạn có thể báo cáo đây là một lỗi cho các nhà phát triển bash.


Tôi đồng ý. Nó đang phân tách ký tự unicode thành các byte thành phần, do đó việc xử lý Unicode của nó bị tắt.
jpaugh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.