#8
Beitrag
von jochen » 02. Okt 2006 9:38
Hi,
das ist relativ einfach zu erklären. LC_COLLATE legt fest, wie die Sortierreihenfolge auszusehen hat. Nach purem ASCII kommen zuerst die Großbuchstaben, dann die Kleinbuchstaben, was man mit "LC_COLLATE=C" einstellen kann.
Das C darf man sich als "Computer" denken - es wird nicht groß was festgelegt, sondern der Computer soll sortieren, wie es für ihn "natürlich" ist (also ASCII bezgl. der Zeichen bis 127, be 128-255 also Latin1 oder UTF8). Also steht in der Sortierreihenfolge y zwischen x und z, Y ist viel weiter vorne.
Im Deutschen gilt aber, dass Groß- und Kleinbuchstaben gleich zu behandeln sind! Setzt man dies über LC_COLLATE=de, dann steht y zwischen Y und Z...
Verwendest Du [xyz], hast Du die gewünschten Zeichen exakt angegeben - es erscheinen auch nur Kleinbuchstaben. [x-z] dagegen lässt den COLLATE-Mechanismus greifen, da in D dadurch offiziell auch die Großbuchstaben gleichberechtigt sind.
Ich persönlich hasse dieses Verhalten auch. Wenn ich nicht sowieso mit einer englischen Sprachumgebung arbeite, setze ich meist "LANG=de" und "LC_COLLATE=C". Vielleicht sind auch die Kommandos "locale" und "localedef" für Dich interessant...
Jochen
Die grösste Lüge der EDV? "Mal eben..."