[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LC_ALL setzen



> Ok, so ganz stimmt meine Behauptung nicht. Man bekommt jedenfalls kein
y
> wenn man auf z drückt. Aber auf jeden Fall ist nach dem Umschalten auf
C
> meine Bash "kaputt", soll heißen bei der Eingabe eines ö wird ein Teil
> des Promptes gelöscht. Hängt vermutlich mit der ansonsten aktiven
UTF-8
> locale zusammen.

Die bash benutzt die locale tatsächlich auch bei der Eingabe; über
LC_CTYPE wird ermittelt, welchen Zeichensatz (CODESET) Du verwenden
willst. Die Bytes, die von der Tastatur kommen, werden dann entsprechend
dieses Zeichensatzes interpretiert. Wenn der LC_CTYPE "C" ist, dann ist
der codeset ASCII, und die Bytes, die bei den Umlauttasten kommen, sind
keine gültigen Zeichen mehr.

Warum bash dann so darauf reagiert, ist mir nicht ganz klar: Eventuell
beschließt die Shell, dass das gesetzte 8. bit das Meta-Bit ist, und
interpretiert das ö als M-v (ö-128 == v); zumindest wenn das Terminal
Latin-1 sendet. Sendet es UTF-8, kommt bei ö die Bytefolge \xc3 \xb6;
ignoriert man hier die oberen Bits, kommt da M-C M-6 raus. Welche dieser
Funktionen nun bewirken, dass ein Teil des Promptes gelöscht wird, weiß
ich nicht.

Ciao,
Martin




Reply to: