[Résolu] Transformer charset d'une variable en php.

WRInaute discret
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 srais l'idéal) ?

Merci d'avance.
 
WRInaute impliqué
Salut,

Il y a bien une fonction, mb_convert_encoding. Hélas le problème c'est que l'extention mb_* n'est pas disponible sur tous les hébergeurs, donc espèront que tu ai un peu de chance.

Sinon, un utf8_decode ferait peut-être l'affaire ;-)

A+
 
WRInaute discret
J'ai fait un test comme ceci.

Code:
 $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é.
 
WRInaute discret
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



n'est il pas possible pas changer le charset du fichier xml ?
<?xml version="1.0" encoding="ISO-8859-1"?>

Non, le flux ne m'appartiens pas, je ne peux pas y toucher .
 
WRInaute discret
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.

Code:
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)

Code:
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
 
Nouveau WRInaute
Re:

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

Bonjour et merci beaucoup pour cette solution , ça faisait des jours que je cherchais sur le net sans succès. :roll:
 
Discussions similaires
Haut