Newsgroup: it.comp.www.php
Titolo: visualizzazione caratteri "strani"

Una volta pubblicato uno script, tutti i testi prelevati da mysql che
contengono lettere accentate vengono rappresentate in maniera strana.
Ad esempio la " è " è diventata " Ã¨ ".
Per risolvere il problema ho utilizzato utf8_decode(), il problema l'ho
risolto in remoto ma si è presentato in locale. In locale al posto di
"é" visualizzo un "?".
Quindi per cercare di risolvere il problema contemporaneamente sia in
locale sia in remoto ho fatto una cosa del genere:
utf8_encode(utf8_decode($stringa)) e ora tutto funziona bene.
Questo è il miglior sistema per risolvere il problema?
grazie anticipatamente

 utf8_encode(utf8_decode($stringa)) e ora tutto funziona bene.
mi corrego... funziona solo in locale :(...chi mi aiuta?

 Questo è il miglior sistema per risolvere il problema?
No. Il miglior modo e` uniformare a un solo set di caratteri tutti gli
ambienti (editor, PHP, Apache, MySQL, sia da te che sul server).
Consiglio di uniformare a UTF-8.
Bye.

 Consiglio di uniformare a UTF-8.
quindi mi sa che sarò io a uniformarmi al server. Per sapere quale set
di caratteri il server utilizza cosa devo fare?
grazie ancora

 di caratteri il server utilizza cosa devo fare?
Chiederlo all'amministratore.
Oppure puoi mettere in ogni pagina un header() che imposta il charset.
Bye.

> Consiglio di uniformare a UTF-8.
Ho trovato questo consiglio in varie parti.
Ma ad esempio, in un sito in italiano (o in inglese), il consiglio resta lo 
stesso, o conviene il classico ISO-8859-1? Perché?
rob4you 

 Oppure puoi mettere in ogni pagina un header() che imposta il charset.
Oppure prima di mettere in ogni pagina l'header per il charset puoi usare un 
software di sniffing come ethereal, e fai una richiesta di una pagina html 
risiedente sul server, e vedi che charset viene inserito.
Se invece vuoi il charset del db (mysql): SHOW VARIABLES LIKE 
'character_set%'.
rob4you
www.outofmind.eu
 



Se vuoi la vita semplice e hai un solo sito e non prevedi di usare
caratteri strani, usa l'ISO.
Ma se hai un server con 100 siti, ognuno col suo DB, e ognuno con lingue
diverse, risulta piu` semplice gestire tutto con UTF-8.
Anche perche` poi ti fai le funzioni di conversione, tieni conto di utf-8
e sei tranquillo.
Siccome a me capitano siti dal semplice italiano al multilingua (rumeno,
ungherese, russo, cinese, francese, per esempio) ho preferito passare
tutto a utf-8 e non preoccuparmi piu` di niente (tranne che degli htmlisti
che usano editor in Windows-1252, maledetto S.O....)
Tieni conto anche che in PHP6 stanno convertendo tutto il possibile a
utf-8, quindi probabilmente diventera` il charset standard, e che comunque
per i caratteri ASCII (i primi 127) "degrada" automaticamente ad ASCII,
appunto.
Bye.

 che usano editor in Windows-1252, maledetto S.O....)
Perché in tal caso ci sono problemi? E come li superi?
rob4you 

 Perché in tal caso ci sono problemi? E come li superi?
Perche` ha le accentate dove vuole lui (naturalmente in posti
diversi dall'ISO).
Ho risolto modificando i testi a mano... :/
Se sono troppe modifiche uso gedit e gli faccio convertire il tutto.
Bye.

 lunghezza) devi usare librerie esterne.
Tipo le "multibyte string functions" come mb_strlen ecc.?
rob4you