-
Encoding database
Buongiorno,
ho un problèma con l'encoding nel database.
Quando invio su phpmyadim una parola con un accento, questa lettera viene trasfromata (tipo é diventa é).
Quanto la visualizzo su internet vedo bene l'accento, quindi fino a qui non avevo problemi.
Solo che ho dovuto mettere una ricerca con autocompletamento quindi, quando cerco questa parola non la vedo nei risultati.
Ho fatto un test con lo stesso database e gli stessi file su easyphp (in locale) e non ho questi problemi, ogni volta che invio una parola con l'accento viene registrata bene.
Tutti i miei file sono in UTF8, il meta charset anche lui in utf-8 e ho impostato che quando invio le informazioni sono inviate in UTF8.
A cosa è dovuto questo problema e come posso risolvere?
Grazie mille in anticipo
-
Perchè gli accenti in utf-8 non occupano un byte, per test puoi creare un file con codifica iso-8859-1 con questi caratteri é, dopo averlo salvato forza la lettura in utf-8 (leggerai é). In sintesi la tua pagina di phpmyadmin sarà impostata in iso-8859-1 (prova direttamente con php e il header utf-8). Ma è strano perché prima ti accetta il carattere é (utf-8) poi ti converte in é (iso-8859-1) sempre da phpmyadmin ma in due pagine differenti. EDIT: Invece di effettuare un ragionamento razionale per asserzione, cioè noi dobbiamo credere che cerchiamo i byte e non i caratteri. Se si cerca é (in utf-8) o é in (iso-8859-1) sono sempre i medesimi due bytes, dunque la stessa ricerca (cambia solo la visualizzazione dei bytes)