Logaholic.de

Avatar

queer as code!

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:

  1. Die Eingabe enthält keine Multibyte-Zeichen. Hier ist nur noch ein einmaliges kodieren zu UTF-8 erforderlich, und die Funktion ist fertig.
  2. 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.

Bookmark and Share

No related posts.

One Comment, Comment or Ping

  1. and wheres the sourcecode? ;)

Reply to “UTF-8 Encoding – Rekursive Näherung”