Bonjour tout le monde !

Il m'est arrivé un truc bizarre hier sur une de mes applications en utf8. Je m'explique.

Le charset par défaut du php.ini est en iso-8859-1, j'ai activé le mbstring (mais pas l'overload).
Je ne peux pas le changer le charset car d'autre appli tourne en iso.

Sinon tout est en UTF-8 :
  • encodage des fichiers : utf8 sans bom avec notepad++
  • encodage des pages html : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  • base de données : encodage de la bdd en utf8_general
  • connexion à la bdd : mysql_query( "SET NAMES 'utf8'" );
  • htaccess qui spécifie le charset : AddDefaultCharset UTF-8


D'un seul coup, tous mes caractères accentués que j'affiche se sont transformés en caractères louches comme si l'encodage n'était pas le bon.

Avant cet instant fatidique, tout fonctionné nikel je précise qu'aucune modification sur le serveur n'a été apporté hier ni dans les jours précédents.

J'ai donc enlevé|ajouté les fonctions utf8_encode et utf8_decode là où il y avait des erreurs et après les caractères accentués s'affichent normalement maintenant.

Sur une certaine page, j'affiche des données et je rempli un formulaire. Certains input (qui sont dans des listes à puces sortable générées en JQuery) sont générés notamment avec le genre de fonction JQuery (ci-dessous) Ce code est généré dans mon code PHP, et ca va dispatché les données dans des puces imbriquées sortable :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<?php
$output = '<script type="text/javascript">$( \'#puce'.$id_puce_append.'\' ).append(\''.addslashes( $data ).'\');</script>';
?>
Et aujourd'hui je me suis rendu compte qu'en sauvegardant la page, ça enregistrait correctement les données dans la BDD (normal ^^ ) mais quand la page se rechargeait, j'avais le droit à des petits losanges noirs à la place des caractères accentués dans mes input et textarea.

Ensuite je réactualise la page, les losanges disparaissent et tout redevient normal.

  1. affichage de la page et chargement des données => pas de cara chelou
  2. sauvegarde ds la BDD => pas de cara chelou
  3. rechargement de la page après le submit => cara chelou ds tous les input et textarea
  4. clic droit rechargement (ou actualiser) => pas de cara chelou


D'où ça peut venir ? Quelqu'un a t il déjà eu ce problème ?

Cordialement,