Quand on importe du contenu encodés en UTF-8 dans une base de données, et qu’on oublie que le logiciel qu’on utilise encode par défaut en UTF-8 avec BOM, il arrive que des caractères accentués soient mal gérés par le navigateur. Avant de faire afficher ce contenu, on peut le faire passer dans la fonction PHP suivante. Pour l’instant, elle ne fonctionne qu’avec les « à » mal encodés.
function utf8_fixme($str) {
$find = array("'Ã '");
$replace = array(utf8_encode("à"));
return utf8_decode(
preg_replace(
$find,$replace,utf8_encode(
$str)
)
);
}
Ah, je sens que ce truc me sera utile sur kebek.org quand je vais me remettre au développement… Y’a des erreurs d’encodage de caractère depuis quelque semaines, et ça sort de nul part!
Amadeo (22 mai 2007 à 15:58 EST)
En fait, ce problème ne risque de t’arriver que si, comme moi, tu oublies que Notepad++ gère mal l’UTF-8!!!
Rémi Prévost (22 mai 2007 à 17:47 EST)
Nice! J’ai justement eu ce problème hier après-midi!
Pierre-Luc (22 mai 2007 à 22:19 EST)
En fait, j’ai des merdes incoryable à manipuler les RSS et certains caractères…. O.o
Amadeo (23 mai 2007 à 15:24 EST)