Wie kommt man & nbsp richtig HTML Purifier mit verhalten?
-
22-08-2019 - |
Frage
Ich bin mit HTML Purifier in meinem PHP-Projekt und Mühe habe immer es richtig mit Benutzereingaben zu arbeiten.
Ich habe Benutzer geben in HTML-WYSIWYG-Editor ( TinyMCE ), aber immer dann, wenn ein Nutzer in der HTML-Entität
(non-breaking space) es wird in die Datenbank als dieses seltsame fremde Zeichen (Â
) gespeichert.
Doch die Sache ist, wenn ich den gespeicherten Eintrag bearbeiten Sie den WYSIWYG-Editor es richtig als
angezeigt wird. Es ist auch richtig funktioniert, wenn angezeigt wird, nur dass im Quellcode es scheint, als ein realen Raum, aber nicht das non-breaking Leerzeichen.
Auch in der MySQL-Datenbank zeigt es als seltsam fremden Charakter.
las ich das doc über Unicode und HTML Purifier und änderte meine Datenbank und Web Seite Kodierung UTF-8, aber ich habe immer noch Probleme mit den non-breaking Raumzeichen nicht verstümmelt zu sein. Die anderen HTML-Entitäten, wie <
und >
, erhalten als <
und >
gespeichert, aber warum nicht
?
Lösung
Der non-breaking Raum wird in der Datenbank als einen seltsam fremder Charakter nicht gespeichert werden, es wird gespeichert als zwei Zeichen. Das Unicode non-breaking Leerzeichen wird in UTF-8 als 0xC2 0xA0
codiert, die in ISO-8859-1 sehen aus wie "Â" (das heißt ein seltsames Fremd von einem Leerzeichen non-breaking gefolgt Zeichen).
Sie vergessen wohl SET NAMES 'utf8'
auf Ihrer Datenbank-Verbindung zu tun, die PHP führt seine Daten an MySQL als ISO-8859-1 zu senden (die Standardeinstellung).
Haben Sie einen Blick auf „ UTF-8 den ganzen Weg durch ... ", um zu sehen, wie man richtig eingerichtet UTF-8 bei der Verwendung von PHP und MySQL.
Andere Tipps
Es kann Ihnen auch helfen, dass  
zu wissen, ist eine alternative für
, die Sie wahrscheinlich, wenn Sie jemals Ausgang jeder Menschen lesbaren XML erfordert;)