Réparation du blog : appel à l’aide

02/12/2008
Par

Comme certains d’entre vous l’ont remarqué il y a un léger problème d’encodage sous mon blog en ce moment.

Pour tout dire, j’ai fait une fausse manœuvre qui a consisté à convertir mes bases en UTF-8, ce qui nous donne cette jolie petite interprétation en ISO-8859-15, du plus méchant effet.

Ce devrait être facile réparer mais…

Mais il se trouve que l’exportation des bases sql emporte des jeux de caractères tels que [''] (deux apostrophes), qui servent à désigner une variable non renseignée.

Or, la conversion UTF-8 vers ISO-8859-15 ne supprime pas les doubles apostrophes ['']qui ont remplacé les apostrophes simples dans les textes.

Résultat, soit je me retrouve avec des apostrophes doubles, soit j’essaye de les convertir avec un éditeur de texte à la main. Mais alors, je fausse la syntaxe SQL.

Bref,

Si quelqu’un comprend le problème et peut me proposer une solution, je suis très avidement preneur.

Merci de votre aide

16 commentaires to Réparation du blog : appel à l’aide

  1. tim le 02/12/2008 à 17 h 38 min

    En choisissant des expressions regulieres judicieuses, il doit y avoir moyen de ne remplacer QUE les apostrophes du texte, et pas celles du code?

    (Juste une remarque en l’air—je m’y connais un peu en expressions regulieres, mais pas du tout en SQL)

    Bon courage!

  2. vains dieux le 02/12/2008 à 17 h 56 min

    For what it worth(probablement pas grand chose…) je vous suggère de jeter un oeil à cette page :

    http://forum.alsacreations.com/topic-17-34354-1-RESOLU-Encodage-de-caracteres-utf-8-et-dotclear.html

    Notamment le passage où il est suggéré d’insérer
    mysql_query(« SET NAMES ‘utf8′ », $this->con_id); après la connexion à la base de données.

    Bon courage!

  3. jules (de diner's room) le 02/12/2008 à 18 h 08 min

    Oui, le problème est que je vois les bases corrompues en passant par phpmyadmin.

    Donc, je ne suis pas certain qu’une modification du code de dotclear résolve le problème.

  4. Odile le 02/12/2008 à 20 h 20 min

    Je ne comprends rien à ce que vous dites, mais tout ce que je sais, c’est que votre précédent billet était rempli de signes cabalistiques, tandis que celui-ci est parfaitement clair. Si ça peut vous encourager ?

  5. arylie le 02/12/2008 à 20 h 49 min

    Bonsoir,

    s’il y a des doubles apostrophes dans les données elles ne sont pas protégées lors de l’export ?

    Dans les anciens billets mal encodés il n’y a pas de problème de double apostrophe, non ?

  6. Christophe le 02/12/2008 à 22 h 40 min

    Si tu m’envoie un email avec un extrait d’une de tes tables (xxx_blog_post par exempl) je peux probablement trouver la bonne expression régulière pour resoudre ton probleme. J’avoue que je n’ai pas tellement envie d’essayer directement avec la base de mon blog…

    Pour info je suis aux Etats-Unis avec 7h de décalage horaire.

  7. ED. le 02/12/2008 à 22 h 58 min

    Bonjour,

    Si j’ai bien compris votre problème une requête de ce style devrait pouvoir vous aider :

    UPDATE NOMDELATABLE SET NOMDUCHAMP = REPLACE(NOMDUCHAMP, ‘ »‘, « ‘ »,);

    N’hésitez pas à me contacter par email au besoin.

  8. Vonric le 03/12/2008 à 2 h 18 min

    Et voila encore le célèbre adage vérifié: « si ça marche, n’y touche pas , pauvre fou! »

  9. Xorph le 03/12/2008 à 10 h 42 min

    Si vous choisissez l’option du remplacement à la main avec un éditeur de texte, vous pouvez remplacer les doubles apostrophes par des simples, sans fausser les instructions SQL, ainsi : – Laissez les apostrophes du code SQL telles quelles – Précédez les apostrophes du vrai texte d’un \ (par exemple : INSERT INTO… VALUES (‘Jus de fruit ‘, ‘Jus d\’orange’).

  10. David-David le 03/12/2008 à 14 h 01 min

    Bon courage!

  11. MB le 03/12/2008 à 14 h 11 min

    Oui, le « Bon courage ! » trouve plus sa place ici que sous votre billet précédent. Bon courage…

  12. vains dieux le 03/12/2008 à 17 h 43 min

    Désolé, j’avais lu trop vite et manqué une partie des données du problème.
    Puisque celui-ci a l’air de perdurer, je vous suggère de faire ce que vous propose Christophe ci-dessus, mais en plus radical encore: mettez un extrait de la table qu’il cite en téléchargement sous votre billet, et appuyez-vous sur la bonne volonté des geeks qui vous lisent… Et que le meilleur et le plus rapide gagne un abonnement gratuit à Diner’s room ;-)

  13. jules (de diner's room) le 04/12/2008 à 8 h 42 min

    Bon, les choses n’avancent pas vite ;

    J’ai des problèmes d’importation des mes bases sauvegardées les plus récentes sous phpmyadmin.

    Donc, je n’ai pas tous les moyens pour faire des tests à blanc.

    Mais je poursuis, je poursuis…

    Merci à tous pour les suggestions.

  14. arylie le 04/12/2008 à 11 h 38 min

    Je suis assez d’accord avec vains dieux. Si vous fournissez un extrait de fichiers de sauvegarde quelqu’un pourra probablement faire quelquechose.

    (une installation en local d’un serveur sql et de Dotclear n’est pas très longue)

    Sinon, quel est le message d’erreur que vous avez ?

  15. Curieux le 04/12/2008 à 20 h 27 min

    Bonjour,

    Quand j’avais ce type de problème, je passais toujours par un traitement de texte, c’est facile à dupliquer, ça va très vite et… on voit ce qu’on fait.

    Pour ce faire il faut avoir une idée très précise de ce qu’il faut remplacer et non remplacer dans leur contexte.

    Concrètement, pourriez-vous coller plusieurs exemples réels de «  à conserver et à ne pas conserver dans vos commentaires ?

  16. Curieux le 04/12/2008 à 20 h 28 min

    Concrètement, pourriez-vous coller plusieurs exemples réels de double crochets à conserver et à ne pas conserver dans vos commentaires ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green