Es ist kein zusätzliches Zeichen; Es ist das erste Byte eines Multibyte-Unicode-Zeichens.
Sie haben die Funktion tatsächlich aufgefordert, dies zu tun, indem Sie ihr den Flag-Ausdruck FILTER_FLAG_ENCODE_LOW | FILTER_FLAG_ENCODE_HIGH
geben.
Wenn Sie kodieren nicht „high“ Werte, ändert sich das Ergebnis ist aber immer noch nicht sehr nützlich:
var_dump(trim(filter_var("\nLook ma, there are special characters:\n<>\"'&©", FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW)));
// string(61) " Look ma, there are special characters: "'&┬®"
Was als nächstes wirklich tun auf Ihren Anforderungen abhängt. Ich vermute, dass filter_var
nicht das ist, wonach Sie suchen, wenn Sie Unicode-Zeichen auch behandeln möchten.
Wenn ANSI genug für Sie ist, fand ich, dass eine schnelle Lösung war, meine PHP Quelldatei Codierung ANSI-Modus zu ändern (nicht UTF-8!), Fixieren die nun gebrochen „©“ Glyphe durch das Entfernen von verwaist "und führen Sie das Skript erneut aus:
// string(65) " Look ma, there are special characters: "'&©"
Aber das ist irgendwie begrenzt.
Haben Sie einen Lese durch die folgenden Handbuchseiten für weitere Informationen:
Was ist das eigentliche Problem, das Sie zu lösen sind versuchen? Was ist dein Ziel? –
Nicht sicher, es ist Hammer-würdig, aber das ist sehr verwandt http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – Machavity