Salut à tous. Je récupere un site pour le "refaire" et après avoir généré plusieurs pages, j'ai des problèmes dès que j'include.

Ce qui est bizarre c'est que le header (déclaré en meta) dans l'index est correct. Le fichier quand je l'ouvre directement (avec notepad++) écrit les caractères spéciaux directement en format classique => é,à ect...

Si j'ouvre la page seule via un navigateur (Autre qu'Opera car celui ci m'interprete bien les caractères) avec un header php ou en meta j'ai toujours mes caractères => "éalisation et à lâ��interprétation"(par exemple).

Je ne vois pas d'ou ca peut venir. J'ai trifouiller les headers, meta j'ai jouer avec htmlentity, avec espace,unescape mais aucun résultat.

Rude
Modifié par ffwrude (29 Nov 2007 - 10:24)
Je fait un deuxieme post pour rajouter qu'en fait. Si je copie colle le contenu dans un nouveau fichier et que j'enregistre, puis include celui ci... Cela fonctionne...

Par contre si je copie colle le contenu dans le navigo, que je le colle dans un nouveau fichier et que je l'include ca fait pareiL...

L'encodage peut être gardé dans un copier coller ??????

Rude
Non non en fait je viens fermer ce post parce que je l'ai résolu. Le html_entity_decode n'était pas la solutioN;


En fait comme le texte est créer dans un fichier via AJAX. J'ai supposé qu'il gardait l'encodage AJAX


http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');


J'ai donc rechargé le fichier derrière en AJAX. Ce site ne devant pas être référencer ca ne me posera pas de problèmes (Bien que ce soit possible de le faire).

Rude
Bon ... bah je suis revenu à peu près au même point.

j'ai voulu faire un test sans ajax parce que bon ... le chargement de page en AJAX y'à mieux.

Donc j'envoi en AJAX le innerHTML d'une div qui doit comprendre un truc du genre :


<div id="jaune" style="border: 1px solid yellow; position: relative; width: 550px; height: 236px;">
	<div id="test_1" style="width: 179px; height: 176px; position: absolute; left: 164px; top: 60px;">é</div>
</div>


puis je fais un include de la page dans une autre.

Si j'ouvre ca avec un navigateur il me met le é n'importe comment (normal puisqu'AJAX envoi en utf8). mais dans le fichier j'ai bien un é (et pas & eacute;).

Donc comme un petit malin je me suis dit Smiley smile COUCOU je te colle un utf8_decode();

Maintenant ... ca fait l'inverse....

Il m'écrit n'importe quoi dans le fichier MAIS ! L'interprete correctement dans l'include.

J'ai donc un carré à la place du é. Mais lorsque j'ouvre le navigo... mon texte est correct...

Y'aurai pas un petit soucis ? Smiley lol

Une pitite idée ?

Rude
Modifié par ffwrude (28 Nov 2007 - 17:27)
Bonjour,

Je n'ai pas suivi tout le détail du sujet (désolé), mais voici une question et une remarque.

La question: est-ce que tu as lu, compris et assimilé les items de la FAQ qui traitent de l'encodage des caractères? Notamment Comment bien déclarer l'encodage des caractères d'un document ? et les notions d'encodage réel et d'encodage déclaré, et tant qu'à faire aussi S'y retrouver entre ASCII, ANSI, Latin1, ISO-8859-1, MacRoman, Windows-1252, etc. parce que ça ne peut pas faire de mal.

En cas de doute sur l'encodage réel des caractères pour un fichier donné, le moyen le plus fiable est d'utiliser un éditeur hexadécimal.
Du coup j'en viens à ma remarque: de ma propre expérience, Notepad++ est un éditeur de code très chiant pour la gestion des caractères. C'est pas pire que le Bloc-notes de Windows, mais c'est vraiment pas terrible (ou du moins pas clair).
L'éditeur que j'utilise sous Windows, Komodo Edit, est largement plus clair et donc pour moi plus fiable.
Salut salut. Bah écoute ... Il y'avait bien un problème venant de notepad++... Après avoir tester qu'en Hexa ce soit bien écrit E9.(merci de la suggestion Florent).Mon collègue à fait un test avec son notepad++ et au lieu d'avoir un carré à l'interieur du fichier ... il avait un "é"....

Il n'y avait donc aucun problème....

Merci à tous quand même.

Rude
Modifié par ffwrude (29 Nov 2007 - 10:27)