Problème encodage de mon Blog utf-8 et iso-latin

leonlescribe

Nouveau WRInaute
Bonjour à tous !

Je suis nouveau sur ce forum, et je voulais poser la question à de vrais pros :)
Je suis en train de coder un petit Blog en PHP/MySQL, et j'ai un problème d'encodage.

En fait, ma page index.php est en utf-8, mais quand je fais une requête pour prendre le contenu de mes articles de ma base de données, il m'affiche plein de � (?) partout à la place des accents. J'ai vu que c'était un problème d'encodage, alors j'ai mis ma page en iso-latin, et là, l'article était bien, mais tous les accents de la page se sont retrouvés en espèces de À© ou des choses comme ça.

Vous avez une solution ?
 

leonlescribe

Nouveau WRInaute
J'ai trouvé !

Il a suffit de mettre:
Code:
<?php
echo utf8_encode($variable);
?>

au lieu de

Code:
<?php
echo htmlspecialchars($variable);
?>

Merci quand même ! PS: J'ai trouvé la réponse sur le forum, il suffisait de chercher...
 

Ottis

WRInaute discret
Salut, à ta place j'opterais pour la solution de JanoLapin. De plus, avec ta solution, l'affichage de ta variable n'est plus sécurisé.
 

spout

WRInaute accro
Alors pr que ça s'affiche convenablement, choses à vérifier:
- Encodage des fichiers PHP => UTF8
- Header HTML => <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- Vérifier dans le header HTTP s'il ne transmet pas un charset par défaut autre que UTF8.
- Encodage dans la base de donnée: champs en utf8_general + SET NAMES utf8 si nécessaire.
 

poulpe

WRInaute discret
Encodage dans la base de donnée: champs en utf8_general + SET NAMES utf8

Par defaut mysql echange en iso. Si t as page est en utf8 c est normal que tu aies des problemes, effectivement le solution est soit en set names une fois a la connexion et apres chaque deconnexion. Ou bien changer les variables par defaut du server mysql, ce qui sera impossible si tu n as pas ton propre serveur.
 

Discussions similaires

Haut