"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Unicode-Probleme

t3mp 22.04.2007 - 17:21 981 2
Posts

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6278
Habe von gestern auf heute mein Gentoo-amd64 vom 2006.0-profile auf 2006.1/desktop umgestellt und im Zuge dessen auch baselayout auf Unicode umgestellt, weil es das 2006.1er voraussetzt. Bei der Gelegenheit habe ich mich also auch endlich einmal mit den locales bzw. Spracheinstellungen beschäftigt.

Resultat: Haut hin, aber mit Einschränkungen. Bei der Verwendung von Umlauten gibt es Probleme, sie werden korrekt angezeigt, aber: lösch ich jene Umlaute und auch ß sowie gewisse Sonderzeichen (§) wieder via Backspace, hat das einen unschönen Effekt: die Konsole glaubt, es wären mehr Zeichen auf der cmdline zu löschen, was bedeutet, ich komme per Backspace bis hinter "#" oder auch "$" zurück und darf fleißig auch $PS1 ausradieren. Woran könnte das liegen?

Settings:
rc.conf:
UNICODE=yes

locale.gen:
en_GB.UTF-8 UTF-8
de_DE ISO-8859-15
de_DE@euro UTF-8
locale-gen generiert die drei dann auch erfolgreich.

locale -a:
C
de_DE
de_DE@euro
en_GB.utf8
POSIX
--> macht mich etwas stutzig, denn sollte beim de_DE@euro-Eintrag nicht auch utf8 dabei stehen?

locale:
LANG=en_GB.UTF-8
LC_CTYPE=de_DE@euro UTF-8
LC_NUMERIC=de_DE@euro UTF-8
LC_TIME=de_DE@euro UTF-8
LC_COLLATE=en_GB.UTF-8
LC_MONETARY=de_DE@euro UTF-8
LC_MESSAGES=en_GB.UTF-8
LC_PAPER=de_DE@euro UTF-8
LC_NAME=de_DE@euro UTF-8
LC_ADDRESS=de_DE@euro UTF-8
LC_TELEPHONE=de_DE@euro UTF-8
LC_MEASUREMENT=de_DE@euro UTF-8
LC_IDENTIFICATION=de_DE@euro UTF-8
LC_ALL=
Bearbeitet von t3mp am 22.04.2007, 19:41

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12070
Waere mir neu, dass es eine @euro-Unicode-Locale braeuchte. Ich hab zwar nur us-amerikaniche Locales, aber versuch einfach mal nur "de_DE.UTF-8 UTF-8"

Um die locale wirklich systemweit zu setzen, empfiehlt sich das Erstellen eines eigenen env.d-Configfiles (z. b. "/etc/env.d/02locale"), wo du einfach die zu setzenden Wertepaare eintraegst.

Code:
colo@zealot ~ $ ls -l /etc/env.d/02locale
-rw-r--r-- 1 root root 20 2006-11-30 21:46 /etc/env.d/02locale
colo@zealot ~ $ cat !$
cat /etc/env.d/02locale
LC_ALL="en_US.utf8"

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6278
thx, hab es zuvor schon noch einmal mit de_DE.UTF-8 UTF-8 probiert, und es funktioniert jetzt. :) Scheinbar ich bin gestern einem Irrtum aufgesessen, weil locale mehrere Fehler meldete von wegen LC_xxx konnte nicht gesetzt werden. Jetzt frag ich mich aber, welchen zweck "de_DE@euro UTF-8" erfüllt, locale-gen frisst den Eintrag nämlich erfolgreich. ^^

/etc/env.d/02locale verwend ich schon um mein nur teilweise verenglifiziertes System (mit deutschen Fehlermeldungen fang ich nichts an) zu erreichen. ;)

locale -a liefert jetzt
de_DE.utf8
en_GB.utf8

und 02locale hab ich hinsichtlich dessen editiert, jetzt ist alles so wie es sein soll.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz