[Talk-de] OSM case sensitiv?
Hartmut Holzgraefe
hartmut at mysql.com
Di Okt 13 08:29:49 UTC 2009
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
Mehr Informationen über die Mailingliste Talk-de