Bereits letzte Woche habe ich mich mit charset herumgeschlagen. Die Schlacht war leider noch nicht zuende. Probleme mit dem charset treten dann auf, wenn ein Text mit regular expressions durchsucht werden wird. Dann kann es nämlich vorkommen, dass diese nicht gefunden werden. Ein vereinfachtes Beispiel, welches nichts mit charset zu tun hat, zeigt die Problematik einfach auf:
Ist ja ganz logisch. Das gleiche gilt jedoch auch für charset. Ich habe noch immer nicht ganz kapiert, wie sich verschiedene charsets miteinander verhalten, aber hier ein paar nützliche Funktionen:
- mb_detect_encoding($str) //gibt den charset für einen String zurück
- iconv($in,$out,$text) //konvertiert einen text von einer Zeichenkette in eine andere
- html_entity_decode ( string $string [, int $quote_style [, string $charset ]] ) //Argument 2 und 3 sind hier zentral!
- utf8_encode($text) und utf8_decode($text) //ist ja klar 😉
Drupal ist allgemein in UTF-8, aber es kann halt vorkommen, dass man die Daten aus irgend einem Grund umschreiben muss, es ist keine schöne Sache… Das Problem: Auf dem Bildschirm werden sie richtige dargestellt, aber was drunter liegt sieht man leider nur schlecht.
Wer sich richtig darin vertiefen will, soll sich mal schoenitzer.de reinziehen.