PHP Encodage

Fermé
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 - 4 oct. 2011 à 18:14
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 5 oct. 2011 à 12:44
Bonjour à vous,

J'ai une page index.php qui va chercher deux autres fichers ( include monficher.php ).
Ces deux fichiers sont générés au moyen d'une interface admin.

Mon soucis, c'est que sur la page principale, parfois mes accents sont remplacés par des ? entourés de noir sur Firefox, des carrés sous Explorer.

Et c'est assez aléatoire, quand j'actualise, parfois ils disparaissent et mes accents sont là, parfois les symboles reviennent etc...

Ma page index est encodée avec:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Mes résultats php avec:

mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error());

Conflit d'encodage ?

Merci à vous
A voir également:

6 réponses

mimigenie Messages postés 1180 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 4 août 2018 312
4 oct. 2011 à 19:48
Essaye avec iso-8859-1
Normalement les accents passent sans problèmes. Mais les caractères spéciaux du genre russe ne passent pas.
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
4 oct. 2011 à 20:57
Je vais essayer merci,

J'ai un petite question, c'est l'encodage par défaut qu'il vaut mieux utiliser ?

Il est plus "fiable" que l'utf-8 ?

Pardon pour ma question de noob
0
mimigenie Messages postés 1180 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 4 août 2018 312
4 oct. 2011 à 21:13
Ca dépend du site, pour un site qui est dans les langues européennes, iso-8859-1 est le mieux

utf-8 correspond plus aux sites internationaux qui sont parfois dans des langues avec des signes bizarres
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
5 oct. 2011 à 03:38
Ce n'est pas une question de fiabilité.
Il faut simplement être cohérent.

Il faut distinguer l'encodage utilisé à l'enregistrement du fichier et celui déclaré dans le fichier.
Un fichier peut être enregistré en iso-8859-1 et déclaré en UTF-8. Là, il y aura conflit.
L'encodage déclaré doit être cohérent avec celui réellement utilisé.

Notepad++ (sous Windows) ainsi que Bluefish (Windows et Linux), pour ne citer qu'eux, permettent d'identifier très simplement celui qui est réellement utilisé pour l'enregistrement du fichier. Il permet aussi de le convertir.
L'encodage utilisé est noté en bas à droite.
Voir ici pour exemple

Personnellement, j'utilise à 100% l'UTF-8 et si on reste cohérent, ce que je fais, il n'y a aucun problème.

Un article très intéressant sur le sujet: https://www.alsacreations.com/astuce/lire/34-charset-iso-8859-1-iso-8859-15-utf-8-lequel-choisir.html
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
5 oct. 2011 à 08:00
Merci beaucoup !
Je vais lire ça attentivement.

Je reviens vers vous car je pense avoir un peu plus ciblé mon problème.

Si j 'enlève la balise:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

de ma page index, je n'ai plus aucun soucis avec les parties de texte php qui sont include dans la page.

Seulement maintenant, je n'ai plus les accents sur les éléments qui ne sont pas include ( le reste de mon texte qui est directement dans la page )

C'est donc le double encodage ( dans les php include et la page principale ) qui merde.

Pourtant c'est de l'utf8 dans les deux cas :(
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
5 oct. 2011 à 12:44
Si tu as un problème avec l'un des fichiers pour l'affichage des caractères, c'est qu'au moins un des fichiers inclus à un encodage différent.
Vérifie bien chaque fichier.
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
5 oct. 2011 à 11:46
Bonjour,

La meilleure solution est d'être full-UTF8 sur toute la chaîne de développement:
- sources HTML et PHP
- données en BDD
- scripts et fichiers annexes...

Tout est expliqué ici:
http://html5.immo-scope.com/index.php?page=general/applisFullUtf8

A+
0