pto: Eleminierung von HTML-Fehlern

Beitrag lesen

Übrigens ist hier der RegExp-Modifier /…/u wichtig. Das behandelt die Eingabe als UTF-8. Ich vermute, dann wird die 0xXX-Notation als Unicode-Codepoint verstanden?! Ansonsten würde es ja Multibyte-Zeichen zerstören. Ich habe es nicht ausprobiert. Gegebenenfalls würde ich auf die \uXXXX-Notation ausweichen, die sich unmissverständlich auf Unicode-Codepoints und nicht auf Bytes bezieht.

Wenn da tatsächlich ein Umlaut hingehört, dann ist irgendetwas kaputt. Entweder du liest den Feed mit einer falschen Kodierung ein, oder es geht etwas bei der Verarbeitung schief. Welche Kodierung nutzt der NDR und mit welcher verarbeitest du den String?

also, ich habe es jetzt mit /u und so versucht:
$descr = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x80-\x9F]/uXXXX', '', $descr);

Im ersten Fall entfernt er Umlaute ganz und im zweiten Fall ändert sich nichts. Im Validator sieht es so aus:

Error Line 229, Column 286: Forbidden code point U+009f.

…stätigen, wäre dies der bisher gröÃ...te Skandal um einen deutsch-amerikanisc…


Error Line 244, Column 559: Forbidden code point U+009f.

…le ="Zum Sport: Für die deutsche FuÃ...ball-Nationalmannschaft geht es heute b…

offenbar wird mit dem Umlaut ein Steuerzeichen ausgeliefert. Die Seite ist als <meta charset="utf-8"> deklariert. Ich verarbeite auch in utf8.
Ich habe hier mal die Steuerzeichen durch ... ersetzt, sonst werden sie hier nicht akzeptiert.