Page 1 sur 2
Problème avec les Accents
Posté : 14 févr. 2016, 21:18
par Mister-Binaire
Bonsoir le Forum,
Je ne connais absolument rien en php et j'aurais besoin de votre aide pour quelque chose qui va surement vous paraître basique.
Sur mon site internet, j'ai un livre d'or qui est externalisé.
Je ne veux pas que mes visiteurs voient l'adresse de mon hébergeur pour ce faire l'hébergeur propose se code php (voir ci-dessous) :
Mais le problème est que les accents sont affichés en caractères bizarre avec ce code.
Quelle ligne de code faut il rajouter pour que les accents apparaissent normalement ?
En mettant le lien directe du Fournisseur sans passer par ce mini fichier les accents apparaissent normalement.
Merci de votre aide..
Amicalement,
MB
<?php
$id = 132202;
$url = "
http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param = addslashes(urlencode(serialize($param)));
$content = file_get_contents("
http://www.livre-dor.net/include.php?param=$param");
echo $content;
?>
Re: Problème avec les Accents
Posté : 14 févr. 2016, 21:52
par @rthur
Bonjour,
Regarde du côté de utf8_encode() et utf8_decode()
http://fr.php.net/utf8_encode
http://fr.php.net/utf8_decode
Re: Problème avec les Accents
Posté : 14 févr. 2016, 23:07
par Mister-Binaire
Merci de ta réponse Arthur.
Mais malheureusement n'ayant aucune connaissance dans ce langage de programmation, je ne sais pas où je dois insérer la ligne
string utf8_decode ( string $data )
Si j'ai bien compris.
Merci de votre support.
Amicalement,
MB
Re: Problème avec les Accents
Posté : 14 févr. 2016, 23:30
par or 1
echo utf8_decode($content);
Re: Problème avec les Accents
Posté : 15 févr. 2016, 18:42
par Mister-Binaire
Merci de ta réponse Or1,
J'ai modifié la ligne de code comme tu m'as dit mais maintenant je me retrouve avec des ? à la place des accents. (Voir lien ci-dessous)
http://www.bienvenue-chez-ariejoie.fr/livredor.php
Code source une fois modifié :
<?php
$id = 132202;
$url = "http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param = addslashes(urlencode(serialize($param)));
$content = file_get_contents("http://www.livre-dor.net/include.php?param=$param");
echo utf8_decode($content);
?>
Merci de ton support
Amicalement,
MB
Re: Problème avec les Accents
Posté : 15 févr. 2016, 19:00
par Saian
Bonjour, j'ai testé le code original et je ne vois pas de problème d'accent avec...
Re: Problème avec les Accents
Posté : 15 févr. 2016, 21:10
par Mister-Binaire
Merci de ta réponse Saian et pourtant si tu cliques sur le lien ci-dessus qui est dirigé vers le code original, j'ai des ? à la place des accents.
Merci de votre support..
Re: Problème avec les Accents
Posté : 15 févr. 2016, 21:16
par Saian
Excuse moi mais c'est pas cohérent. Là je vois des ? et tu as dis te retrouver avec des ? après utilisation du utf8_decode. Tu parlais au départ de caractères bizarres. Donc déjà je pense que les ? là c'est avec le utf8_decode.
J'ai copié collé le code proposé dans ton premier poste (sans utf8_decode) et testé la page et tous les accents s'affichent correctement.
Re: Problème avec les Accents
Posté : 15 févr. 2016, 21:19
par @rthur
En théorie, il faudrait que tu regardes de bout en bout les différents jeux de caractères utilisés : comment sont encodés tes contenus, tes scripts PHP et quelle entête est renvoyée par le serveur PHP.
En pratique, si ça ne marche pas avec utf8_decode(), essaye avec utf8_encode()

Re: Problème avec les Accents
Posté : 15 févr. 2016, 21:37
par Saian
Sauf que le file_get_contents retourne le code html complet de la page qui est encodé en ISO-8859-1 (la meta charset y est bien définie). Dans mon test le script est encodé en utf-8 et ça ne pose pas de problème.
http://www.livre-dor.net/include.php?pa ... 132202%3B}
Re: Problème avec les Accents
Posté : 15 févr. 2016, 22:33
par Mister-Binaire
Merci à vous tous de vos réponses et particulièrement à Arthur qui a trouvé la solution avec utf8_encode les accents sont reconnus.
Merci une fois de plus de votre support.
Re: Problème avec les Accents
Posté : 15 févr. 2016, 22:38
par @rthur
Avec plaisir !

On te laisse passer le sujet en Résolu en cliquant sur le bouton à cet effet situé tout en haut à gauche du sujet ?
Re: Problème avec les Accents
Posté : 15 févr. 2016, 22:54
par Saian
Ah ben si ça fonctionne je m'incline. Mais c'est quand même pas logique du tout de devoir faire un utf8_encode pour que les accents de la page s'affichent bien alors qu'elle a un charset iso-8859-1. ^^
Je serais curieux de comprendre exactement ce qui se passe car sur mon serveur de dev ça fonctionne de base sans faire de manipulation loufoque.
Re: Problème avec les Accents
Posté : 16 févr. 2016, 01:59
par @rthur
Ah ben si ça fonctionne je m'incline.

Les problèmes de charset c'est toujours le bazar, surtout quand on a des sources différentes sur lesquelles on n'a pas forcément la main.
Mais c'est quand même pas logique du tout de devoir faire un utf8_encode pour que les accents de la page s'affichent bien alors qu'elle a un charset iso-8859-1. ^^
Je serais curieux de comprendre exactement ce qui se passe car sur mon serveur de dev ça fonctionne de base sans faire de manipulation loufoque.
Au dela du charset défini dans la page HTML, il faut regarder ce que le serveur renvoie comme entete HTTP (Ctrl+i dans Firefox > onglet Réseau)
Et il faut regarder ça aussi bien pour le fichier PHP qui affiche le résultat que pour la page distante qui est renvoyée par le serveur distant.
Bon, mais j'avoue avoir très souvent la flemme de regarder d'où vient le souci et je tente un utf8_encode() ou utf8_decode() à défaut, et je dirai que dans 95% des cas ça suffit ^^
Re: Problème avec les Accents
Posté : 13 mars 2016, 14:30
par Mister-Binaire
Bonjour le Forum,
Saian à raison, je me suis enflammé un peu trop vite, les accents ne sont toujours pas reconnus !!
A chaque message, je suis obligé de retourner sur le site du livre d'Or éditer le texte et corriger les accents !!
Que faudrait il que je mette dans mon code PHP pour que cela fonctionne ?
Merci de votre aide, je remets le fichier source actuel ci-dessous :
<?php
$id = 132202;
$url = "
http://www.bienvenue-chez-ariejoie.fr/livredor.php";
$param = unserialize(urldecode(stripslashes($_GET['param'])));
$param[0] = $url;
$param[1] = $id;
$param = addslashes(urlencode(serialize($param)));
$content = file_get_contents("
http://www.livre-dor.net/include.php?param=$param");
echo utf8_encode($content);
?>