Problème d'encodage avec utf8_encode

chimpan
Invité n'ayant pas de compte PHPfrance

17 janv. 2010, 19:11

Bonjour à tous.
Etant novice en php, je souhaiterai encoder l'un de mes flux rss avec utf8_encode . Pour cela, je dois modifier la ligne suivante:

while ($data = fread($fp, 4096))

mais je ne sais pas comment intégrer le fread avec utf8_encode.

En d'autres termes, comment modifier la syntaxe de cette ligne pour que la ligne prenne en compte cette forme d'encodage?

Je vous remercie par avance pour votre aide.

Charles

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 janv. 2010, 19:50

La fonction fread() te retourne une chaine de caractères que tu stockes dans la variable $data. Si tu veux encoder cette chaine en utf8, il te suffit de faire appel à ta fonction lorsque tu en as besoin :
while ($data = fread($fp, 4096)) {
  $data = utf8_encode($data); // encode la chaine contenue dans $data et écrase l'ancienne chaine par la nouvelle
  ...
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

chimpan
Invité n'ayant pas de compte PHPfrance

18 janv. 2010, 00:14

Merci pour la réponse. Effectivement, ma page est encodée différement, mais il y a toujours des erreurs, ça ne doit pas être le bon encodage... =(

ViPHP
AB
ViPHP | 5818 Messages

18 janv. 2010, 22:49

Merci pour la réponse. Effectivement, ma page est encodée différement, mais il y a toujours des erreurs, ça ne doit pas être le bon encodage... =(
utf8_encode() encore une chaine ISO-8859-1 en utf-8. Si ton $data n'est pas en ISO-8859-1 ça va poser des pb.
Si cela peut t'aider il y a un tuto sur l'encodage en utf-8 ici