FAQ |
Lista utenti |
Gruppi sociali |
Calendario |
Cerca |
Messaggi odierni |
|
|
LinkBack | Strumenti della discussione | Modalità di visualizzazione |
|
|||
Correggere database MySQL da caratteri speciali in accentati
Correggere database MySQL da caratteri speciali in accentati
Salve,
ho dovuto trasferire un forum phpBB con relativo database da un server all’altro ma purtroppo il risultato finale è stata la comparsa di caratteri speciali al posto di quelli accentati tipo e’ al posto di è, à al posto di à, ° al posto di ° ecc. Ho fatto diverse prove per sistemare, partendo dalla correzione manuale dei caratteri e poi reimportazione del database tramite dump, ma poi i caratteri speciali riprendono il posto di quelli accentati, verificato anche riscaricando poi il database. Ho provato quindi anche a cambiare charset del database, dall’attuale UTF-8 al latin, ma il risultato è stato di veder comparire altri caratteri speciali oltre a quelli già esistenti. Qualcuno ha quindi idea di come si possa fare per ripristinare una volta per tutte i caratteri accentati? Grazie mille |
|
|||
Allora, prima di tutto scaricati un programma per poter aprire il tuo database, dopo averlo scompattato, così da poterlo editare. Uno molto buono è per esempio Notepad scaricabile da questo link: http://www.flos-freeware.ch/
Poi apri il tuo database con quel programma e cominci ad usare la funzione Replace (attivabile anche premendo CTRL+H) e ti vai a cercare la prima combinazone di caratteri conenente il simbolo Ã; cerchi quindi di capire dal contesto quale carattere ci andava originariamente scritto al posto di quella combinazione (per esempio ti potresti accorgere che al posto di ò ci andrebbe una ò) e poi ti vai a cercare il carattere accentato in una tabella di conversione in caratteri ISO 8859-1 tipo questa: http://www.w3schools.com/tags/ref_entities.asp . Da questa tabella vedrai che la ò si traduce in ò quindi andrai a sostituire in tutto il database ò con ò Poi ti vai a cercare la prossima à e la prossima combinazione, cerchi di capire cos'era, la vai a cercare nella tabella, sostituisci... e così via fino alla fine di tutti i caratteri. Potresti anche pensare di crearti delle query e lanciarle per fare tutto il procedimento in automatico, ma anche questa procedura, se la devi fare una volta sola, vedrai che funziona bene e non ti richiederà troppo tempo. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Eccomi qui: non è stato facile ma alla fine, grazie anche al tuo aiuto ce l'ho fatta.
Mi sono prima di tutto costruito una tabella di conversione caratteri, pescando e rielaborando i dati trovati qua e la su internet, che riassumo qui sotto:
Sembrava fatta, ed invece no perchè il database che dovevo aggiustare aveva probabilmente già subito in passato vari passaggi di server con charset sbagliati e correzioni manuali non del tutto corrette, quindi vi erano sovrapposizioni di caratteri speciali, concatenazioni in pratica che facevano si che un carattere potesse essere composto da due simboli, da quattro.. fino anche ad arrivare a diciassette simboli! La mossa corretta sarebbe quella quindi di cominciare a sostituire col Notepad2 i caratteri con più simboli per poi andare a correggere quelli con meno simboli (perché il piccolo può stare nel grande ma non viceversa, errore che forse era stato fatto da chi aveva corretto precedentemente). Non esiste uno standard in questo, perché tutto sta agli errori di conversione che sono stati commessi prima, ma io sono partito col cercare il  (con tanto di virgola finale): ne guardavo un po’ e prendevo la stringa più lunga che trovavo e cercavo di interpretarne la conversione originale aiutandomi anche con la tabella scritta prima. Poi quando ormai li avevo sostituiti tutti ho cominciato anche a cercare il à ed alla fine di caratteri strani ne sono rimasti veramente pochi. Mano a mano che li sostituivo me li annotavo così che la prossima volta che dovesse capitarmi un casino simile, forse risolverei più facilmente. Vi riporto quindi qui sotto la tabella finale dei caratteri che ho sostituito, da prendere un po’ con le molle perché qualche dubbio che siano tutti corretti al 100% ce l’ho avuto, in particolare sul carattere 133 (quello dei tre puntini di fila). Ho riordinato la tabella di modo che per ogni carattere, compare per primo quello che contiene più simboli, per evitare appunto problemi di concatenazione.
Sperando che questo lavoro possa essere d’aiuto a qualcun altro in futuro, vi saluto e mi rendo disponibile per eventuali delucidazioni in merito, nel caso fosse necessario. Ciao |
|
|
Discussioni simili | ||||
Discussione | Forum | |||
Verificare la presenza di caratteri semplici in celle Excel | Informatica | |||
Errore di connessione del database in vBulletin | Informatica | |||
Valutare una cella Excel se contiene caratteri consecutivi | Informatica | |||
Programma per estrarre dati database sql o convertirlo in excel? | Informatica | |||
Come conteggiare in Dreamweaver i caratteri del meta tag description? | Informatica |