8791 sujets

Développement web côté serveur, CMS

Bonjour,

je travaille actuellement sur un site internet codé en charset: iso-8859-1.

Sur ce site j'insère du texte dynamiquement à partir d'un flux xml, qui lui est codé en utf-8.

Mon problème est que ce flux utf-8 s'affiche très mal "éèé....". Normal puisque le reste du site est en iso-8859-1.

Avant d'afficher le texte sur mon site, je met les balises xml dans des variables en php et ce sont ces variables que je rappellent pour les afficher.

Savez-vous comment je pourrais transformer le contenu de mes variables de utf-8 vers iso-8859-1 avant de les afficher ?

Existe-il une fonction php pour cela (ce serais l'idéal) ?

Merci d'avance.
Salut,

je vois deux solutions "faciles"

soit ton texte en utf8 te prend toute ta page alors place une balise meta pour l'afficher en utf8.

sinon tu peux aussi utiliser la fonction utf8_decode pour mettre le contenu de tes variables en iso.

en tous cas je te conseille la lecture de tous ce qui se trouve dans la section encodage et internationalisation de se forum
Modifié par CPascal (14 Nov 2007 - 21:30)
J'ai fait un test comme ceci.

 $texte=utf8_decode($text);


Quand j'ouvre ma page j'ai juste un "r" qui s'affiche à la place de chaque texte.

Comprends pas, je fais d'autre tests.

Merci de ta rapidité.
Re,

ayant recemment utilisé cette fonction pour integré un contenu ldap dans un site iso j'ai vu utf8_decode fonctionné ma foi Smiley rolleyes .

Mais attention elle ne sait décoder uniquement que du utf8 si on lui passe autre chose ça marche pas.

apparement il y a un autre outil pour la convertion iconv qui est moins simple; notamment car ça depend de l'implementation/integration de iconv sur ton serveur php mais qui convertit plusieurs format en precisant le format d'entrée et de sortie.

ceci dit il faudrait être sur que ta variable $text contient bien du utf8.

un test tout bete tu affiches text sans l'avoir decode avec tes Ã@ et tu passes l'affichage de ton navigateur en utf8 . si le texte s'affiche bien c'est surement que c'est de l'utf-8 sinon s'en est pas.

et sinon dur a dire sans voir le code.mais je suis pas expert en xml.
Bonsoir,

Merci de vos réponses, pour l'instant j'ai tout simplement changé le charset de la page en utf-8, cela s'affiche bien.

Je reviendrais sur ce problème plus tard car j'ai pas réussi ce que je voulais.

Parfois avec un peu de recul on comprends mieux.

merci encore
Bonjour,

J'ai réussit à résoudre mon problème avec utf8_decode

Quand je parse mon flux xml, j'utilise utf8_decode avant d'enregistrer ma balise xml dans une variable.

Ci dessous, je lis la balise xml "login" que j'enregistre dans la variable $login et j'utilise la balise utf8_decode avant de l'enregistrer dans la variable. ça marche nickel.

eregi("<login>(.*)</login>",utf8_decode( $results[$i+1] ), $login);


Par contre si j'enregistre ma balise dans une variable et que ensuite je la décode ça ne marche pas. (ce que j'avais fais en premier)

eregi("<login>(.*)</login>", $results[$i+1], $login);
$login=utf8_decode($login);


Voila c'étais juste pour essayer d'expliquer le problème que j'ai rencontré, ça peut peut-être servir à d'autres un jour.

Problème résolu.

Merci Smiley smile