Un aiutino con le lettere accentate e l’UTF-8

Roba tecnica. Astenersi dalla lettura personale normali, pena senso di frustrazione e incazzatura per aver sprecato minuti della vita a leggere robe incomprensibili ed inutili.

Io la butto là, magari qualche volenteroso-coraggioso si propone: ho un problema con i diacritici (le lettere accentate e i simboli) perché il blog è stato creato con tabelle mysql e WordPress in ISO-8859-1, e solo poi s’è reso necessario usare l’UTF-8 — lo richiedono il plugin di Twitter e quello di Del.icio.us.
Con la mitica assistenza del mio hosting (DreamHost) abbiamo provato a cambiare, financo a mano, ogni singolo riferimento all’interno delle tabelle del mysql da latin1_swedish_ci a UTF_8_unicode_ci; il che non ha dato alcun tipo di risultato.
Il punto morto è questo: con il WordPress (options > reading) impostato in UTF-8 i Twitter, i Del.icio.us e i nuovi articoli visualizzano correttamente i diacritici, mentre i vecchi articoli — diverse centinaia — si confondono sulle accentate; viceversa, con l’ISO-8859-1, articoli sia vecchi che nuovi ok, e Twitter e Del.icious a puttane.
L’assistenza tecnica, alla fine, s’è arresa, proponendomi, come migliore soluzione, d’impostare, d’ora in avanti, l’UTF-8 e di cambiare a mano tutti gli accenti nei vecchi articoli. Capirete da soli che è un’impresa titanica.

E si arriva alla richiesta d’aiuto: c’è qualche volenteroso che sa come aiutarmi?

7 Responses to “Un aiutino con le lettere accentate e l’UTF-8”

  1. SKA says:

    Mi si presentò lo stesso problema un po’ di tempo far, seppur non con WordPress (su cui sto ancora lavorando).

    In pratica fai il dump dell’intero database esportandolo in .sql (e ne fai una copia, mettendola da parte per sicurezza). Poi apri l’intero .sql (potrebbe essere molto grande) con un editor di testo adeguato (va bene anche notepad++) e ti fai delle regole di sostituzione per le lettere “sbagliate”.

    Infatti vedrai che le lettere tipo à è ì ò ù dei post + vecchi saranno scritte in maniera strana (solitamente una A maiuscola con un segno accanto). Basta trovare quindi i corrispondenti di ogni lettera accentata e sostituirli con il carattere XHTML (è = è – ò = ò e via dicendo…)

    Saranno interpretati correttamente a prescindere da utf-8 o Iso.

    Spero di esserti stato utile

  2. SKA says:

    ehm, sorry. come vedi mi ha interpretato le lettere accentate

    sarebbe & egrave ; – & eacute ; – & ograve ; ecc…

    senza gli spazi

  3. Francesco Minciotti says:

    Mister terz’occhio: Pare davvero un’ottima idea, non c’avevo davvero pensato; né lo avevano fatto quelli di DreamHost, notoriamente dei geni nonché squisitissime persone, se questo può farti più piacere :)
    Ti farò sapere che ne verrà fuori.
    Per ora, grazie per l’aiuto e complimenti per l’ingegnosità!

    Aggiornamento: Ahimè, pur dopo aver cambiato il charset in UTF-8 — e quindi una volta verificato che gli articoli nel sito si vedono sballati —, il dump del database mostra, inspiegabilmente, le lettere corrette.
    Il mistero s’infittisce.

  4. Anduril says:

    >il dump del database mostra, inspiegabilmente, le lettere corrette.<

    è probabile che l’editor di testo che usi per visualizzare il dump sia uno di quelli che seleziona la codifica corretta in modo automatico. Su Windows usavo EditPad, che se non erro aveva questa caratteristica.

  5. SKA says:

    Pensavo la stessa cosa di Anduril.
    Dovresti fare il dump codificato in UTF-8 e poi visualizzarlo in ISO con il tuo editor, come sopra ti consiglio Notepad++. Dovresti quindi vedere lettere come questa : è che corrisponde alla è.

  6. Francesco Minciotti says:

    Tecnici del mio cuore: Sono sotto Mac (Tiger). L’ho aperto con Taco edit HTML (una sorta di Notepad++ che usavo sotto Windwos), e non è cambiato nulla.
    Proverò a smanettare con il charset di visualizzazione del Taco edit, se ce l’ha.

    Qualche programma per Mac, ce l’avete da consigliarmi?

  7. SKA says:

    Non sono molto ferrato in ambiente Mac. Lavorando in *nix ti consiglierei NVU che ha supporto anche per Mac ed è opensource.
    Ho paura però che avendo cambiato la codifica direttamente sulle tabelle del DB quest’operazione sia un po’ compromessa.

    In realtà ti direi che “è lo stesso”. nel senso che, tagliando la testa al toro, potresti farti una copia del DB e sostituire ugualmente le accentate con i corrispettivi xhtml. I nuovi post li scrivi in UTF-8 (charset modificato anche nel template, altrimenti è un casino).

    Un po’ drastica magari, ma almeno la leggibilità è assicurata.

Leave a Reply