Non so se può esserti utile questo articolo...
![]()
Non so se può esserti utile questo articolo...
![]()
Bel casino veramente!
Allora, il problema dei caratteri non interpretati si verificava solo con l'input che proveniva da una textarea in javascript - Cross-Browser Rich Text Editor -.
Per tutti gli altri input da textarea in html non c'era nessun problema di visualizzazione.
Ho sistemato con questa funzione. Il secondo valore della funzione è il codice html, che qui viene interpretato.
function caratteriparticolari($stringa){
$stringa = str_replace("à","à",$stringa);
$stringa = str_replace("è","è",$stringa);
$stringa = str_replace("ì","ì",$stringa);
$stringa = str_replace("ò","ò",$stringa);
$stringa = str_replace("ù","ù",$stringa);
$stringa = str_replace("“",'"',$stringa);
$stringa = str_replace("”",'"',$stringa);
$stringa = str_replace("’","'",$stringa);
$stringa = str_replace("‘","'",$stringa);
$stringa = str_replace("¢","¢",$stringa);
$stringa = str_replace("£","£",$stringa);
$stringa = str_replace("¤","¤",$stringa);
$stringa = str_replace("¥","¥",$stringa);
$stringa = str_replace("¦","¦",$stringa);
$stringa = str_replace("§","§",$stringa);
$stringa = str_replace("¨","¨",$stringa);
$stringa = str_replace("©","©",$stringa);
$stringa = str_replace("ª","ª",$stringa);
$stringa = str_replace("«","«",$stringa);
$stringa = str_replace("¬","¬",$stringa);
$stringa = str_replace("®","®",$stringa);
$stringa = str_replace("¯","¯",$stringa);
$stringa = str_replace("°","°",$stringa);
$stringa = str_replace("±","±",$stringa);
$stringa = str_replace("²","²",$stringa);
$stringa = str_replace("³","³",$stringa);
$stringa = str_replace("´","´",$stringa);
$stringa = str_replace("µ","µ",$stringa);
$stringa = str_replace("¶","¶",$stringa);
$stringa = str_replace("·","·",$stringa);
$stringa = str_replace("¸","¸",$stringa);
$stringa = str_replace("¹","¹",$stringa);
$stringa = str_replace("º","º",$stringa);
$stringa = str_replace("»","»",$stringa);
$stringa = str_replace("¼","¼",$stringa);
$stringa = str_replace("½","½",$stringa);
$stringa = str_replace("¾","¾",$stringa);
$stringa = str_replace("¿","¿",$stringa);
$stringa = str_replace("À","À",$stringa);
$stringa = str_replace("Á","Á",$stringa);
$stringa = str_replace("Â","Â",$stringa);
$stringa = str_replace("Ã","Ã",$stringa);
$stringa = str_replace("Ä","Ä",$stringa);
$stringa = str_replace("Å","Å",$stringa);
$stringa = str_replace("Æ","Æ",$stringa);
$stringa = str_replace("Ç","Ç",$stringa);
$stringa = str_replace("È","È",$stringa);
$stringa = str_replace("É","É",$stringa);
$stringa = str_replace("Ê","Ê",$stringa);
$stringa = str_replace("Ë","Ë",$stringa);
$stringa = str_replace("Ì","Ì",$stringa);
$stringa = str_replace("Í","Í",$stringa);
$stringa = str_replace("Î","Î",$stringa);
$stringa = str_replace("Ï","Ï",$stringa);
$stringa = str_replace("Ð","Ð",$stringa);
$stringa = str_replace("Ñ","Ñ",$stringa);
$stringa = str_replace("Ò","Ò",$stringa);
$stringa = str_replace("Ó","Ó",$stringa);
$stringa = str_replace("Ô","Ô",$stringa);
$stringa = str_replace("Õ","Õ",$stringa);
$stringa = str_replace("Ö","Ö",$stringa);
$stringa = str_replace("×","×",$stringa);
$stringa = str_replace("Ø","Ø",$stringa);
$stringa = str_replace("Ù","Ù",$stringa);
$stringa = str_replace("Ú","Ú",$stringa);
$stringa = str_replace("Û","Û",$stringa);
$stringa = str_replace("Ü","Ü",$stringa);
$stringa = str_replace("Ý","Ý",$stringa);
$stringa = str_replace("Þ","Þ",$stringa);
$stringa = str_replace("ß","ß",$stringa);
$stringa = str_replace("à","à",$stringa);
$stringa = str_replace("á","á",$stringa);
$stringa = str_replace("â","â",$stringa);
$stringa = str_replace("ã","ã",$stringa);
$stringa = str_replace("ä","ä",$stringa);
$stringa = str_replace("å","å",$stringa);
$stringa = str_replace("æ","æ",$stringa);
$stringa = str_replace("ç","ç",$stringa);
$stringa = str_replace("è","è",$stringa);
$stringa = str_replace("é","é",$stringa);
$stringa = str_replace("ê","ê",$stringa);
$stringa = str_replace("ë","ë",$stringa);
$stringa = str_replace("ì","ì",$stringa);
$stringa = str_replace("í","í",$stringa);
$stringa = str_replace("î" ,"î",$stringa);
$stringa = str_replace("ï","ï",$stringa);
$stringa = str_replace("ð","ð",$stringa);
$stringa = str_replace("ñ","ñ",$stringa);
$stringa = str_replace("ò","ò",$stringa);
$stringa = str_replace("ó","ó",$stringa);
$stringa = str_replace("ô","ô",$stringa);
$stringa = str_replace("õ","õ",$stringa);
$stringa = str_replace("ö","ö",$stringa);
$stringa = str_replace("÷","÷",$stringa);
$stringa = str_replace("ø","ø",$stringa);
$stringa = str_replace("ù","ù",$stringa);
$stringa = str_replace("ú","ú",$stringa);
$stringa = str_replace("û","û",$stringa);
$stringa = str_replace("ü","ü",$stringa);
$stringa = str_replace("ý","ý",$stringa);
$stringa = str_replace("þ","þ",$stringa);
$stringa = str_replace("ÿ","ÿ",$stringa);
$stringa = str_replace('"',""",$stringa);
$stringa = str_replace("€","€",$stringa);
$stringa = str_replace("ˆ","ˆ",$stringa);
$stringa = str_replace("˜","˜",$stringa);
$stringa = str_replace("…","…",$stringa);
$stringa = str_replace("™","™",$stringa);
return $stringa;
}
So che non è il modo migliore, ma per lo meno funziona e non ho più problemi.
Grazie a tutti per l'aiuto. Cosa dite, per il prossimo sito mi consigliate di usare utf-8, o posso usare ancora la codifica che cito in un post qui sopra?
tutti quei str_replace sono inutili, devi uconvertire le lettere accentate in entità HTML (anche perchè senza il codice non valida...). Per questo esiste una funzione apposita chiamata htmlentities.
Ogni tanto però da problemi, vedi qui per la soluzione: http://forum.html.it/forum/showthrea...4#post11904224
Lì è settato per utf-8 quindi devi cambiare il content-type su "text/html; charset=utf-8" e la codifca mysql su utf8_general_ci.
Ad ogni modo, io personalmente preferisco utf-8 che dispone di un set di caratteri più ampio![]()
Il mio problema è che non posso usare htmlentities: l'input proviene da uno script javascript ed è costituito anche da tag html.Originariamente inviato da The Captain
tutti quei str_replace sono inutili, devi uconvertire le lettere accentate in entità HTML (anche perchè senza il codice non valida...). Per questo esiste una funzione apposita chiamata htmlentities.
Ogni tanto però da problemi, vedi qui per la soluzione: http://forum.html.it/forum/showthrea...4#post11904224
Lì è settato per utf-8 quindi devi cambiare il content-type su "text/html; charset=utf-8" e la codifca mysql su utf8_general_ci.
Ad ogni modo, io personalmente preferisco utf-8 che dispone di un set di caratteri più ampio![]()
Se usassi htmlentities i caratteri > e < non sarebbero interpretati come tag.
la funzione che ti ho citato in quel topic se ci levi htmlspecialchars non converte <,>," e 'Originariamente inviato da !!\Freedom9/!!
Il mio problema è che non posso usare htmlentities: l'input proviene da uno script javascript ed è costituito anche da tag html.
Se usassi htmlentities i caratteri > e < non sarebbero interpretati come tag.
Bhè, semplice no? Direi senza dubbio UTF-8, a meno che non voglia trovarti immerso nei problemi di cui abbiamo parlato in questo 3d...Originariamente inviato da !!\Freedom9/!!
Grazie a tutti per l'aiuto. Cosa dite, per il prossimo sito mi consigliate di usare utf-8, o posso usare ancora la codifica che cito in un post qui sopra?Questo il mio consiglio...
![]()