- Home
- Categorie
- Coding e Sistemistica
- PHP
- lettere accentate, visualizzazione e ricerca
-
lettere accentate, visualizzazione e ricerca
Salve,
come da titolo, ho difficoltà con queste benedette lettere accentate.
So che l' argomento è stato trattato miliardi di volte, ma proprio non riesco a risolvere.
Versione mysql 5.5.29 64bit.
Ho il seguente problema:
Creo un database partendo con codifica caratteri in utf8 con il comando"crate database ufficiale;"
creo una tabella (fino a qualche versione fà), i nomi delle colonne potevo metterli accentati, adesso non più (primo problema), ma questo importa poco, quindi eseguo
"create table clienti (id int not null auto_increment, Citta varchar(255) not null, primary key (id));"
Creata la mia tabella vado ad inserire (da prompt ms-dos), nella colonna creata, il carattere "ò" attraverso
"insert into clienti (Citta) values ('ò');"
e qui nasce il primo problema, il terminale mi risponde
"mysql> insert into clienti (Citta) values ("ò");
ERROR 1366 (HY000): Incorrect string value: '\x95' for column 'Citta' at row 1
mysql>"allora forzo la connessione al db con il comando
"set names latin1"
Rieseguo l' insert, è magicamente mi prende la lettera accentata.
Ora, per esigenze lavorative, il database, verrà 'backuppato' (passatemi il termine) 1 volta al giorno.
Eseguendo quindi il backup, mi viene da verificare la corretta importazione dei dati, qual' ora ve ne sia la necessità, allora mi disconnetto da mysql, ed eseguo il comando"mysqldump -u user -p ufficiale > backup.sql"
Creo un nuov database per testare l' import
"create database provo;"
a questo punto reimporto il backup attraverso
"mysqldump -u user -p provo < backup.sql"
Risultato mi ritrovo una tabella con le colonne 'id e Citta' ma completamente vuota.
Ho provato in uno dei numerosi tentativi, forzando l' export in latin1, in quel caso mi inseriva i dati nel database, ma quando eseguivo un
"select * from clienti where Citta LIKE '%ò%';"
Mi ritorna empty, se invece cerco '%o%', mi trovava il campo. Ma la ò accentata, aveva un carattere strano, eppure da phpmyadmin il carattare lo vedevo corretto!
Qualcuno sa come risolvere in maniera definitiva questo problema noioso?Grazie delle eventuali risposte
Alessandro
-
Modifica tutti i caratteri accentati in codice html esempio ò diventa Ò
Se devi visualizzare i dati in una pagina html è perfetto XD
-
grazie idgweb della risposta,
ma probabilmente non mi son spiegato bene io.
Il problema non sussiste nella visualizzazione tramite la pagina php, quello lo risolvo impostando l'header con charset utf8, il problema risiede nella visualizzazione nel prompt dei comandi.
I codici html li conosco, ò - à e via dicendo, ma non è quello purtroppo il problema.
Spero in una risoluzione perchè sta cosa mi serve abbastanza urgentemente.
Ale
-
Ciao,
io ti consigliere idi passare tutto in utf-8, ricordandoti di modificare le tabelle impostando tutti i campi su utf-8, e dopo modificare la configurazione di mysql per utilizzare di base utf-8. In modo da non dover usare set names ogni volta.