Aug 26, 2008
UTF-8 Encoding – Rekursive Näherung
Wer kennt es nicht, eine Datenbank gefüllt mit verschiedenartig kodierten Daten. Einmal ISO, einmal UTF-8, und mit Sicherheit auch mehrfach UTF-8 kodiertes…
Gestern habe ich ein relativ einfaches Prinzip verfolgt, was mir unerwartet gute Ergebnisse liefert. Alle Daten, die einem der oben genannten Muster entsprechen, nimmt das Konstrukt auf und gibt es als korrekten (nur einfach) kodierten UTF-8 String zurück.
Das Prinzip besteht aus zwei Teilen:
- Die Eingabe enthält keine Multibyte-Zeichen. Hier ist nur noch ein einmaliges kodieren zu UTF-8 erforderlich, und die Funktion ist fertig.
- Die Eingabe enthält Multibyte-Zeichen. Rekursion starten, um den nächsten String mit Dekodieren zu erhalten, der keine Multibyte-Zeichen mehr enthält. Ergebnis ist dann klar feststellbar. Ausnahme: Sollte die echte Länge des Strings (nicht mb_strlen) gleich der des Dekodierten sein, handelt es sich um einen String ohne Sonderzeichen.
Um das ganze nicht endlos werden zu lassen, habe ich natürlich noch eine Begrenzung für die Anzahl der Rekursionen eingebaut.
No related posts.

email me
follow me

One Comment, Comment or Ping
michael
and wheres the sourcecode?
Aug 20th, 2009
Reply to “UTF-8 Encoding – Rekursive Näherung”