Das hat aber nichts mit meiner Seite zu tun! wie du siehst entsteht das Problem auch hier!
Ich denke das lässt sich wohl nicht lösen.
Man könnte sicherlich noch über JavaScript verhindern, dass ein User in dieses Feld überhaupt was reinpastet. Aber ob das „good/best practice“ ist, ist ne andere Frage 😉
Wenn du meinst :D. Mag vielleicht sogar in deinem Fall stimmen, aber um Einflüsse deiner CSS-Formatierungen oder irgendwelche HTML-Tags ausschließen zu können, um der Ursache näher zu kommen, wäre es definitiv hilfreich. Selbst wenn es hier genauso ist, kann es andere Ursachen haben. Und hier blind herum raten, habe ich keine Lust. Auch wenn ich mittlerweile eine ganz andere Idee zur Problematik habe und ich vermute, wo die Ursache tatsächlich liegt. Wer den Link einer Website nicht preisgeben will, die im WWW vorhanden ist … – na egal, deine Entscheidung.
Ich habe das „X“ mal in einen WordPress-Beitrag geworfen und gespeichert. Danach in die Datenbank geschaut und siehe da, kein „X“ mehr, sondern: „%ef%bd%98“
Eine Google-Suche später weiß ich nun, dass es neben den „echten“ x (http://www.fileformat.info/info/unicode/char/0058/index.htm) auch ein „Full Width x“ gibt: http://www.fileformat.info/info/unicode/char/ff38/index.htm
Beides ist aber gültiges UTF-8.
Vielleicht schreibt der Kommentator auf einer asiatischen Tastatur bzw. in einem asiatisch eingestellten OS/Browser. Siehe auch:
https://de.wikipedia.org/wiki/Unicodeblock_Halbbreite_und_vollbreite_Formen
Gruß, Torsten
Edi
(@psychosopher)
Das könnte sein da ich internationales Publikum habe! aber soweit ich weiß kommt der aus den usa!
Und kann man das irgendwie lösen?
Edi
(@psychosopher)
Ein Ansatz könnte sein, was Thorsten erwähnt hat, nämlich das die Zeichen so in der Datenbank gespeichert werden. Also könnten sie vor der Speicherung oder nach der Ausgabe konvertiert werden.
Diskutiert wird das beispielsweise hier:
http://stackoverflow.com/questions/20654380/remove-fullwidth-and-half-width-charactors-in-javascript
Aber es wäre auch ein entsprechender WordPress-Filter möglich.
Wie sieht so ein filter aus?
function convert_fullwidth_to_halfwidth( $comment_content ) {
mb_language("Ja");
mb_internal_encoding("utf-8");
$comment_content = mb_convert_kana($comment_content, "r");
return $comment_content;
}
add_filter( 'pre_comment_content' , 'convert_fullwidth_to_halfwidth' );
Benutzte Quellen:
http://stackoverflow.com/questions/10309967/change-fullwidth-characters-to-halfwidth
http://php.net/manual/de/function.mb-convert-kana.php
https://developer.wordpress.org/reference/hooks/pre_comment_content/
Getestet. Funktioniert. 🙂
Gruß, Torsten
Kannst du entweder in die functions.php
deines (Child-)Themes werfen oder daraus ein functionality-Plugin machen.
https://gist.github.com/Zodiac1978/1d9f33ef1be377869ad3
Gruß, Torsten
Bei mir funktioniert das nicht!
oder gilt das erst bei ein neuen kommentar?
oder gilt das erst bei ein neuen kommentar?
Genau! Der Filter greift vor dem Speichern in der DB. Er verändert nicht, was schon in der DB ist.
Kommentar bearbeiten und unverändert speichern sorgt aber dafür, dass der Filter ausgeführt wird.
Gruß, Torsten
Funktioniert bei mir ohne Probleme. Und nu? 😉
Gruß, Torsten