AJAX et les caractères spéciaux

C’est l’un des plus gros problèmes d’AJAX, les caractères spéciaux. Si votre requête n’utilise pas le même encodage que votre page, tous les caractères spéciaux deviennent des points d’interrogation.

J’avais déjà passé pas mal de temps sur ce problème mais hier soir alors que je mettais ma bdd à jour (pour être compatible avec la nouvelle version de FabCMS), je me suis aperçu que certains caractères avaient été remplacés par le fameux point d’interrogation…

Ce matin, après plusieurs heures de recherches, je suis arrivé à la source du problème. Pour convertir les caractères en UTF-8 (le jeu par défaut de l’objet XMLHttpRequest) j’utilise la fonction php utf8_decode. Or cette fonction ne décode pas tous les caractères mais uniquement ceux qui sont dans le jeu de caractères ISO-8859-1…

Au finale, j’ai trouvé 21 caractères ASCII qui n’étaient pas convertis. Pour corriger ça, j’ai simplement faire un str_replace en attendant de pouvoir vraiment regarder de plus près les modules php mbstring et iconv.

Relay, un gestionnaire de fichiers web 2.0

Relay

Il y a quelques semaines, alors que je codai un nouveau gestionnaire de pages pour mon CMS perso, j’ai découvert Relay, une nouvelle application web 2.0.

Relay permet de gérer ses fichiers et dossiers. La nouveauté c’est qu’il utilise AJAX, ce qui le rend bien plus ergonomique que les autres applications du même style.

Envie de déplacer un fichiers ? Rien de plus simple, il suffit de cliquez dessus et de le déposer là où vous souhaitez.

Relay est actuellement disponible en version 0.1 beta. Il nécessite au minimum PHP 4, MySQL 4, Perl 4.8.0 et Apache (ou IIS).

Le site officiel de Relay

XHRConnection, pour gérer l’objet XMLHttpRequest

AJAX c’est bien mais tous les navigateurs ne gèrent pas de la même façon l’objet XMLHttpRequest. De même, selon qu’on envoie la requête en POST ou en GET les fonctions changent. Si on utilise AJAX qu’une seule fois (un petit script) ça peut aller, mais dans le cadre d’une application web, cela devient vite lourd et chiant. C’est là, qu’une classe en javascript est nécessaire…

Continuer la lecture de « XHRConnection, pour gérer l’objet XMLHttpRequest »