Come arrivare & nbsp comportarsi correttamente utilizzando HTML Purifier?
-
22-08-2019 - |
Domanda
HTML Purifier nel mio progetto PHP e sto avendo problemi a farlo funzionare correttamente con l'input dell'utente.
Sto avendo gli utenti entrano in HTML utilizzando un editor WYSIWYG ( TinyMCE ), ma ogni volta che un utente inserisce nell'entità HTML
(spazio unificatore) questo viene salvato nel database come questo personaggio straniero strano (Â
).
Tuttavia, il fatto è che quando ho modificare la voce salvato utilizzando l'editor WYSIWYG che venga visualizzato correttamente come
. E funziona anche correttamente quando visualizzato, ma solo che nel codice sorgente si presenta come uno spazio reale, ma non il carattere di spazio non-breaking.
Inoltre, nel database MySQL visualizza come il carattere straniero strano.
Ho letto il doc su Unicode e HTML Purifier e cambiato il mio database e web codifica pagina sia UTF-8, ma sono ancora problemi con il carattere spazio unificatore non essere alterati. Le altre entità HTML, come <
e >
, vengono salvati come <
e >
, ma perché non
?
Soluzione
Lo spazio unificatore non viene salvato nel database come un carattere straniero strano, è in fase salvato come due caratteri. Il carattere di spazio non Unicode rottura è codificato in UTF-8 come 0xC2 0xA0
, che in ISO-8859-1 assomiglia "A" (cioè un personaggio straniero strano seguito da uno spazio non-breaking).
Probabilmente vi state dimenticando di fare SET NAMES 'utf8'
sulla vostra connessione al database, che fa sì che PHP per inviare i dati a MySQL come ISO-8859-1 (il default).
Date un'occhiata a " UTF-8 fino in fondo ... "per vedere come impostare correttamente UTF-8 quando si utilizza PHP e MySQL.
Altri suggerimenti
Può anche aiutare a sapere che  
è un supplente per
che è probabile che richiederà se mai uscita qualsiasi XML leggibile;)