Problèmes d’encodage MySQL

[en]

I've been to MySQL encoding hell and back. The little question marks you may have seen in place of accented characters a few weeks back were caused by a lovely mix-up of utf-8 and latin-1 inside my databases. Dda_ from #joiito kindly helped me by writing a python script to identify fields with non-utf-8 characters in them, and convert them back.

[fr]

Vous avez peut-être remarqué, il y a une semaine ou deux, que les accents de ce site avaient été remplacés subrepticement par de vilains points d’interrogation. Une fois de plus, je me trouvais dans la situation où je croyais avoir de l’utf-8 dans mes bases de données, pour réaliser ensuite qu’il s’agissait en fait de latin-1. Et cette fois, c’était encore bien pire qu’avant: j’avais un mélange d’utf-8 et de latin-1.

Dda_ a eu la grande gentillesse de passer plusieurs heures à  me pondre un script en python qui fait le tour de tous les champs de toutes les tables de toutes les bases de données, et les convertit en utf-8 s’il y détecte des caractères non-utf-8 (ce qui signifierait, dans mon cas, qu’on se trouve en présence de latin-1). Une fois que c’est fait, le script va changer l’encodage des tables pour que tout nouveau contenu y soit stocké en utf-8.

Bref, voici l’explication et le script.

Similar Posts:

This entry was posted in Uncategorized and tagged encoding, latin-1, mysql, python, Real Live Code, scripts, Software and Tools, utf-8. Bookmark the permalink.

11 Responses to Problèmes d’encodage MySQL

  1. pinggu says:

    Bonjour !

    Je suis en panique, je viens de changer de serveur et j’ai ce problème d’ encodage.

    Peux-tu m’expliquer que faire pour installer et faire marcher ce script en .py ?

    Parce que je n’ai trouvé la notice nulle part et je suis très embêté :s

    Merci bocou d’avance ;)

    Pinggu

  2. pinggu says:

    Bonjour !

    Je suis en panique, je viens de changer de serveur et j'ai ce problème d' encodage.

    Peux-tu m'expliquer que faire pour installer et faire marcher ce script en .py ?

    Parce que je n'ai trouvé la notice nulle part et je suis très embêté :s

    Merci bocou d'avance ;)

    Pinggu

  3. Ollie says:

    Aaaaaaargh… J’ai le même problème et cette base de données me résiste! J’ai voulu regarder le code de Dda mais il semble que la page ne soit plus accessible. Tu l’as encore stp?

  4. Ollie says:

    Aaaaaaargh… J'ai le même problème et cette base de données me résiste! J'ai voulu regarder le code de Dda mais il semble que la page ne soit plus accessible. Tu l'as encore stp?

  5. Pinggu says:

    Ouf, j’ai réussi à  m’en sortir sans…merci quand même ;)

  6. Pinggu says:

    Ouf, j'ai réussi à  m'en sortir sans…merci quand même ;)

  7. Utena says:

    Bonsoir Bunny :)

    J’ai moi aussi quelques problèmes d’encodage, j’aimerai convertir les entrées de mon blog en UTF-8 et après avoir testé plusieurs solutions (aucune ne fonctionne), j’aurais aimé savoir si ce code était toujours disponible, l’url du script ne pointant sur rien. D’avance merci.

  8. Utena says:

    Bonsoir Bunny :)

    J'ai moi aussi quelques problèmes d'encodage, j'aimerai convertir les entrées de mon blog en UTF-8 et après avoir testé plusieurs solutions (aucune ne fonctionne), j'aurais aimé savoir si ce code était toujours disponible, l'url du script ne pointant sur rien.
    D'avance merci.

  9. Stephanie says:
  10. Stephanie says:
  11. Pingback: Invalid argument supplied for foreach() in wp-capabilities.php: Case Cracked! at Climb to the Stars (Stephanie Booth)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>