Bernd Wurst wrote: > Hallo. > > Am Montag, 12. Oktober 2009 schrieb Stephan Knauss: >> Ich bin dafür, dass die keys nur aus Kleinbuchstaben bestehen. Hier zu >> viele Sonderzeichen zu erlauben erzeugt doch nur Verwirrung. >> Brauchen wir diese Freiheit wirklich? > > Ich bin dafür, dass jeder, der die Daten nutzt (und folglich weiß, ob er > case-sensitive Infos erwartet) einfach ggf. ein "lower()" [je nach Sprache] > aufruft. Das schränkt niemanden ein und löst das Problem auch.
Dann stell mal dein locale auf Türkisch und versuch ein lower("I"). Das Ergebnis ist dann nicht "i" sondern (soweit ich mich erinnere) "ÿ". D.h. selbst wenn die Eingangsdaten nur reine 7bit ASCII Zeichen benutzen und keinerlei nationale Sonderzeichen ist nicht garantiert das das Ergebnis von lower() auch nur aus ASCII Zeichen besteht ... Case insensitive Benamsung in Zusammenhang mit Internationalisierung/ Lokalisierung geht wegen solcher nicht eindeutigen Groß/Klein Abbildungen immer irgendwann nach hinten los. PS: das hat damals einige Zeit gedauert im PHP Land bis mal irgendwem aufgefallen ist das die meisten der "Die Image- Funktionen sind nicht verfügbar obwohl die entsprechende Extension geladen ist" von türkischen Benutzern stammten und da ein kausaler Zusammenhang besteht ... PHP ist leider ein gutes Beispiel für die Fallstricke von Case Insensitve Identifiern im internationalen Umfeld. Mittlerweile benutzt die Zend Engine intern nur noch das US ASCII Mapping für Case Insesitive Vergleiche und wird damit für alle nationalen Sonderzeichen wieder Case Sensitive, was neben der eh schon inkonsistenten "Funktionen sind case insensitve, Variablen case sensitive und Konstanten je nach Deklaration das eine oder das andere" die Identifier Vergleichsregeln noch undurchschaubarer macht ... leider gibt es keine Möglichkeit das gerade zu ziehen und dabei gleichzeitig rückwärtskompatibel zu bleiben. Diese spezielle Büchse der Pandora lässt sich nun nicht mehr einfach schließen :( -- Hartmut Holzgraefe, MySQL Regional Support Manager, EMEA Sun Microsystems GmbH, Sonnenallee 1, 85551 Kirchheim-Heimstetten Amtsgericht Muenchen: HRB161028 Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer Vorsitzender des Aufsichtsrates: Martin Haering _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de