Newsgroup: it.comp.www.php
Titolo: lettere accentate

Quando inserisco in un database "perché", quando lo vado a leggere trovo 
perch + un quadratino.
Come faccio a memorizzarlo in maniera da essere letto normalmente "perché" 
?????
Grazie 

Salvatore Paci ha pensato :

E' ovviamente il classi problema dei charset.
La soluzione è solo una: uniformare TUTTO allo stesso charset. Che sia
iso-8859-1, o utf-8 (più complesso da gestire al momento, perché tutte
le funzioni "base" in php sono per iso-8859-1, ma necessario in caso di
multilinguismo).
Nel database da dove lo inserisci il dato? Da prompt dei comandi? Da un
tuo script php? Da phpMyAdmin? Da qualche altra parte?
E quando lo leggi, con cosa lo leggi? prompt dei comandi, browser,
ecc...?
Se nell'operazione di inserimento e lettura i due charset son diversi,
non vedrai il simbolo corretto per tutti i caratteri "non-ascii".
A questo devi aggiungere la "collation" della connessione al db, del 
database stesso, della tabella e dei singoli campi della tabella.
Se non è tutto uguale, è più facile incorrere in problemi.
-- 
rob4you
www.outofmind.eu

 ha scritto nel messaggio 
news:fgs5in$5jr$1...@aioe.org...


 Se non è tutto uguale, è più facile incorrere in problemi.
-----------
Come si aggiunge la collation?
grazie 

 correggo nel database e lo riporto a "perché"
Quest'ultima frase non è molto chiara.
Che vuol dire "nel database arriva..." e che vuol dire "correggo nel
database"?
Da dove vedi che nel database è arrivato ciò che dici e come correggi?
Da prompt dei comandi? Da phpmyAdmin?
Perché in ogni caso tu stai semplicemente usando un "client" che si
connette al database, che sia il prompt dei comandi, o che sia
attraverso browser web.
Se apri il file di configurazione MySQL, my.ini (sempre che tu utilizzi
MySQL), troverai dei punti in cui è specificato il charset, esempio:
default-character-set=latin1
Per vedere che tutto sia effettivamente in latin1 (che è praticamente
la stessa cosa di iso-8859-1), puoi, ad esempio da prompt dei comandi,
una volta connesso a mysql, scrivere:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
Lo puoi impostare in vari modi, sul manuale di mysql, capitolo "9.4.
Connection Character Sets and Collations", puoi leggere più in
dettaglio.
Ti consiglio anche il capitolo "9.3. Specifying Character Sets and
Collations", o più in generale tutto il capitolo 9, dedicato appunto al
delicato argomento dei charset:
http://dev.mysql.com/doc/refman/5.0/en/charset.html
.
Un'ultima cosa: NON fare come ti ha suggerito qualcuno, e cioè aggirare
il problema sostituendo "è" con l'entità "&egrave;". Lavora bene sui
charset, uniformandoli al 100%, e vedrai che tutto andrà bene.
-- 
rob4you

 Da prompt dei comandi? Da phpmyAdmin?
---
Da phpmyAdmin
Sto facendo delle prove e ti farò sapere
grazie 


----------------
      character sets latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 
cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek 
win1250 croat cp1257 latin5
Questa è l'impostazione del mio MySql
ma non sono riuscito ad ottenere una giusta visualizzazione.
Guarda cosa esce fuori:
---
ma il problema Ã? la sfuggente sincronicitÃ
--- 

 --- 
Se il problema lo hai solo in phpmyadmin, non preoccuparti più di
tanto.
Per capire che effettivamente è un problema di charset, nella pagina in
cui hai
"ma il problema Ã? la sfuggente sincronicitÃ"
con Firefox (ma lo puoi fare con qualsiasi altro browser) vai sul menu
"visualizza"->"codifica caratteri" e eventualmente cambiala da "utf-8"
a "iso-8859-1", e vedrai che di sicuro lo vedrai bene.
-- 
rob4you
www.outofmind.eu