Newsgroup: it.comp.www.php
Titolo: Caratteri ?? sito multilingua

Buongiorno!
Ho questo problema, a dire il vero non so se legato al php, ma forse tramite 
php risolvibile:
sul server di prova tutti i caratteri del sito vengono visualizzati 
correttamente.
Sul server definitivo, nonstante il database mysql sia lo stesso nello 
stesso server, al posto di ogni carattere un po' particolare vengono 
visualizzati dei ???
Che problema è?
oppure è legato ad apache?
Grazie 

 Che problema è?
Di codifica, mancano troppe informazioni per sapere dove risieda il 
problema.

 Di codifica,
_probabilmente_, potresti anche stare effettivamente inserendo '??'.

 _probabilmente_, potresti anche stare effettivamente inserendo '??'.
Allora:
sito corretto:
www.net-evolution.com/areaclienti/respect
sito con caratteri anormali:
www.respect.iusspavia.it
cambiano server e apache, ma il mysql è lo stesso.
cosa può essere?
grazie
Cristiano C. 

 ha scritto nel messaggio 
news:4bb1a12f$0$819$4faf...@reader5.news.tin.it...



"Sorry, I am unable to validate this document because on line 145 it 
contained one or more bytes that I cannot interpret as utf-8 (in other 
words, the bytes found are not valid values in the specified Character 
Encoding). Please check both the content of the file and the character 
encoding indication.
The error was: utf8 "\x93" does not map to Unicode"

 oppure è legato ad apache?
Apache manda negli header (nel sito di produzione) la codifica di 
default in UTF-8, le pagine sono in ISO-8859-1
ciao
el_sime

 oppure è legato ad apache?
È un problema di tipo organizzativo, l'ambiente di sviluppo e quello di 
produzione devono essere uguali.

> Che problema è?
Per chiarire meglio.
Onde evitare problemi di visualizzazione/salvataggio dei dati, la 
codifica dei caratteri deve essere la stessa:
1) Nelle tabelle del database
2) Nel salvataggio dei file, verifica che il tuo editor salvi come 
ISO-8859-1 in questo caso
3)Nelle intestazioni dell'html:
<meta http-equiv="content-type" content="text/html; 
charset=ISO-8859-1">
4)Negli header per default di apache, cerca la direttiva 
AddDefaultCharset ISO-8859-1 nei file di configurazione. Nel sito di 
sviluppo la direttiva è disabilitata, quindi apache non invia un header 
con la codifica di default e il browser si arrangia con quello che 
trova nell'header html, nel server di produzione apache invia utf-8
-- 
Ciao
el_sime

 nell'header html, nel server di produzione apache invia utf-8
esatto. era questo. E' bastato commentare la riga AddCharset relativa a 
utf-8, per fargli utilizzare ISO-8859-1 come default
Cristiano C. 

 ISO-8859-1 in questo caso
Tutto giusto, ma essendo un sito multilingua conviene usare utf-8, non 
iso-8859-1, che non contiene, per esempio tutti i caratteri delle lingue 
slave, cirilliche, greche, nordiche, giusto per stare in Europa. E 
nemmeno cinese, giapponese, koreano, lingue africane, ecc.
In pratica va bene solo per italiano, inglese, francese, tedesco, 
spagnolo e portoghese.
In ogni caso, nel 2010, andrebbe fatto tutto e sempre in utf-8.
Bye.

> In ogni caso, nel 2010, andrebbe fatto tutto e sempre in utf-8.
ok, è chiaro. Ma allora andrebbe usata come direttiva anche nel codice html?
Perchè qui, se io lascio usare utf-8 ad apache, non visualizza molti
caratteri.
Li vedo correttamente solo se uso iso-8859-1...
Cristiano C.

 html?
Si`, dappertutto: nei meta tag nell'header, negli header http 
(configurando il webserver o forzandolo da PHP con header() ), nella 
config del DB, nella connessione al DB e nell'editor che usi per scrivere 
le pagine.
E` una rottura all'inizio, ma quando l'hai fatto ti toglie di torno una 
valanga di problemi.
Bye.

 Li vedo correttamente solo se uso iso-8859-1...
Che significa "lasci usare"? Che imposti l'header a mano e vedi dei 
caratteri sballati? In questo caso è probabile che il file sia stato 
salvato con uan codifica diversa.