Problème d’accents entre dotclear et Windows Live Writer

Depuis quelques jours je bloggue sur l’akoya avec Windows Live Writer, ce logiciel permet de se passer des interfaces webs des principales plateformes de blog (dotclear, wordpress, space, …) et c’est vraiment très pratique de pouvoir se concentrer sur le contenu plutôt que sur la manière d’uploader les images, de les modifier … Ce logiciel est donc un vrai bonheur et m’a poussé à blogguer plus.

 depannage informatique

En ce qui concerne la configuration il faut :

  • aller dans ajouter un blog
  • choisir : autre service de blog
  • saisir l’adresse du blog, le login et le mot de passe
  • sélectionner Movable Type
  • saisir : www.ladressedevotreblog.com/ecrire/xmlrpc.php

Et le tour est joué, en ce qui concerne les images il faudra configurer la méthode FTP car l’autre ne fonctionne pas mais je ne vais détailler la configuration c’est un jeu d’enfants.

Mais le problème de Windows Live Writer c’est qu’il y a un bug au niveau des accents dans le titre des billets, en gros ils sont mal interprétés et l’encodage est mauvais. Depuis plusieurs mois tous les utilisateurs de dotclear 1 s’en plaignent mais Microsoft daigne sortir un correctif qui corrige le bug.

J’ai donc cherché une bidouille qui permettrait d’attendre et j’ai ajouté une petite ligne après la ligne 526 au fichier : class.dc.xmlrpc.php qui se trouve dans le dossier : inc/classes

$title = utf8_encode(html_entity_decode($title));

Ce n’est qu’une pure bidouille mais pour l’instant ça fonctionne parfaitement, la prochaine étape sera de faire fonctionner les tags mais ce sera pour plus tard le principal étant que le reste fonctionne.

Son site web en UTF-8

Depuis maintenant plus de cinq ans que je développe en PHP j’ai toujours eu un soucis avec la gestion de l’encodage. Avec le temps j’ai glané ici et là des solutions pour que tout soit encodé en UTF-8 mais il m’en manquait une au niveau de la base de donnée. Voici le résumé des quelques règles pour l’encodage que j’applique à tous mes projets (rien de nouveau je vous rassure, c’est juste un résumé) :

Encodage des fichiers

Il faut évidemment que tous les fichiers soient en UTF-8 c’est une évidence, pour se faire il faut utiliser votre éditeur et lui indiquer ce format.

Déclaration du charset dans le fichier HTML

Dans le head de chaque page de votre il faut déclarer le charset grâce à cette ligne de code :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Changer le header envoyé au navigateur dans le PHP

Au début de votre page il faut utiliser cette ligne de code en PHP qui permet de spécifier le bon format :

header('Content-Type: text/html; charset=utf-8');

Gérer la relation avec la base de donnée

Voici la solution qui me manquait, après avoir établi la connexion avec votre base donnée il suffit de lancer cette requête SQL pour que toutes les communications soient faites en UTF-8 :

SET NAMES UTF8

Donner le  bon format à vos bases de donnée

Dans PhpMyAdmin il faut donner à chacune de vos tables et de vos champs textes le bon format, évidemment l’UTF-8.

Maintenant que je connais toutes ces étapes je n’ai plus de soucis avec mes projets, j’ai passé tellement de temps à m’énerver devant mon écran parce que les accents ne passaient pas que je suis réellement soulagé maintenant.

En période de développement

Quand je suis en période de développement il y a quelques petites choses qui deviennent récurrente :

  • utilisation d’une bonne dizaine de feuilles blanches et autres post-it par heure
  • une bonne dizaine de navigateurs ouverts en même temps
  • itunes qui tourne en permanence
  • boisson en grande quantité : eau, coca, sirop, lait (en fonction de l’heure)
  • lever à 11 heures du matin, coucher à 5 heures du matin
  • twitter en direct sur le côté de l’écran
  • obscurité presque totale dans la pièce
  • coda ouvert en permanence ainsi que Transmit
  • nourriture à base de chips, biroches, nutella et de pizzas à des heures improbables

Mon bureau quand je développe

C’est reparti pour du code

Comme à chaque fois que j’ai une idée de projet je me retrouve dans un état second : un état de réflexion permanente, tout ce qui ne touche pas au projet devient secondaire, perte de sommeil et perte d’appétit. Je passe donc tout mon temps libre face à mon mac, je mange peu et je dors encore moins ; par contre je bois énormément (eau, sirop, lait peut importe) et évidemment je code énormément.

Dans dans deux semaines je suis en vacances (les premières depuis plus d’un an et demi) et je vais en profiter pour mettre à profit mon état de productivité avancé pour mettre en place la version 2 de Bookotel et lancer mon nouveau projet (confidentiel pour le moment) pour lequel j’ai de grandes ambitions (comme d’habitude). Deux semaines de travail complet qui font me permettre de rattraper le retard que j’ai pu prendre ces dernières semaines derniers mois.

Ca fait plaisir de reprendre du poil de la bête parce que je ne me supporte définitivement pas quand je suis dans cet état de déprime post-rupture !

Du code et encore du code

Entre le développement permanent de BookOtel (plus de 1500 hôtels maintenant), la version 3 du site des Hauts de Brèges et la mise à jour de l’extranet de la Croix Rouge (53) je me retrouve à devoir jongler entre plusieurs serveurs et base de donnée mais surtout entre plusieurs méthodes de travail et langages.

D’ailleurs après mes premiers bouts de code orientés ajax j’ai testé l’API de google maps et c’est vraiment bluffant de voir à quel point les développeurs de chez google ont vulgarisés leur API pour la rendre utilisable facilement. C’est un vrai bonheur à utiliser et on arrive rapidement à mettre en place des cartes utilisables par les visiteurs de son site, que ce soit pour faire des itinéraires ou simplement de l’affichage. Il n’y a que le système de clef qui est un peu chiant, mais c’est sûrement une sécurité qui permet à google de maîtriser et surveiller l’utilisation de son API.

Utilisation de l'API Google MAPS sur bookotel.fr

Pour me faire la main j’ai d’abord utilisé les coordonnées des hôtels pour afficher leur position sur la carte, en laissant la possibilité aux utilisateurs de zoomer pour affiner l’affichage. Dans le cas ou l’API ne trouve pas l’adresse dans sa base de donnée elle affiche un marqueur correspond à la ville de l’hôtel (grâce aux coordonnées dans la base de donnée) sans laisser la possibilité de zoomer. Ensuite j’ai ajouté un itinéraire entre l’adresse de l’hôtel et l’adresse du membre, ainsi tous les gens qui sont inscrits sur le site ont automatiquement les itinéraires de fait lorsqu’ils visitent la page d’un hôtel.

Quelques liens :

  • La page officielle de Google Maps API (www)
  • Mon exemple sur bookotel.fr (www)
  • Une liste de tutoriaux très intéressants (www)