Das Ding mit den multibyte strings ist allerdings schon mühsam^^ Wäre doch bestimmt machbar gewesen, den altbekannten string funktionen in neueren PHP-versionen einfach die volle mb-Unterstützung mitzugeben, mit nem optionalen Zusätzlichen Kodierungsparameter zum Beispiel..
Und damit die Abwärtskompatiblität zu allen Verwendungen der Funktionen brechen, die davon ausgehen, dass diese Funktionen 1 Zeichen = 1 Byte liefern? In PHP 6 wird das so gemacht, das bedeutet aber in vielen Fällen ein kleines Refactoring, damit die Scripte ordentlich laufen: < http://forum.de.selfhtml.org/my/?t=196441&m=1316191>
ps. Probleme mit Umlauten in der DB hab ich wirklich - allerdings liegt das daran dass der DB-Betreiber irgend n'Chaos mit den Kodierungen gemacht hat und es teilweise nicht geschafft hat, die Daten fehlerfrei in die Datenbank zu laden.. Da sieht dann "Unterstützung" schon mal so aus: "Unterst?tzung" Mühsam...
Das glaub ich weniger, ich denke eher dass du vergessen hast, der Datenbank zu sagen, in welcher Codierung du mit ihr sprichst - im Fall MySQL wäre das SET NAMES.
Hat mysql eigentlich eine eigene für Kodierungen zuständige Komponente zur Umwandlung von Datensätzen oder hat die Kodierungsinformation rein informelle Zwecke?
Afaik beides - einerseits ist die Codierung wurst, weil in der Datenbank ohnehin nur Bytes herumliegen (natürlich vom Datentyp abhängig) - anderseits kannst du der Datenbank sehrwohl sagen, wie du die Daten gerne haben möchtest.
Das hat aber dann zur Folge, dass du bei falscher Angabe dieser Daten Zeichen zerstörst oder in eine unleserliche form bringst.
Unterstützung in ANSI sieht mit UTF-8 eben meistens nach Unterst?tzung aus während Unterstützung in UTF-8 als ANSI betrachtet z.B. wie Unterstützung aussieht.
Es ist halt ein Unterschied, was tatsächlich in der Datenbank steht:
ANSI: 55 6E 74 65 72 73 74 FC 74 7A 75 6E 67
UTF-8: 55 6E 74 65 72 73 74 C3 BC 74 7A 75 6E 67