Problème accent *é è '* fichier .xml

aragon300 Messages postés 1 Statut Membre -  
 lila -
Bonjour,

Je me résout à poster mon poste car je ne trouve pas de solution à mon problème. Bien que j'ai lu tout les postes concernant les accents dans les fichiers.xml. Voilà deux jours que j'applique les solutions que quelqu'uns ont trouvé mais ça ne fonctionne pas. Rien à faire. J'ai passé par un éditeur de teste, enregistré sous unicode seulement. Ensuite copier coller dans Dreamweaver cs3 et bien d'autre solution. J'ai pas réussi à solutionner ce problème qui semble être la bête noir de bien des gens. Comment se fait-il que l'on est autant de problème en français...

Alors voici, c'est un template Monster celui-ci https://www.templatemonster.com/templates.php?tid=-+Any+-&search_words=20361&from_=-+Any+-&to=-+Any+-&type=&cat=&style=&author=

Il y a un fichier main.xml ou l'ensemble des testes sont regroupé.

Voici le code entête.

<?xml version="1.0" encoding="utf-8"?>

<website>

<!-- Please use special software for editing XML data files -->

<!-- Settings -->

<settings>

<companyName>Daluzzi</companyName>

<slogan>PHOTOGRAPHY</slogan>

<copyright><![CDATA[DALUZZI © 2008 <font color="#FFFFFF"> <a href="event:switchPage,8">PRIVACY POLICY</a></font>]]></copyright>

</settings>

<!-- Menu -->

<menu>

<item targetPage="0"><![CDATA[GALLERIES]]></item>

<item targetPage="1"><![CDATA[ABOUT ME]]></item>

<item targetPage="2"><![CDATA[CONTACT US]]></item>

</menu>

Merci à l'avance !
A voir également:

17 réponses

lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
voila les 2 fonctions dont je me sert, qui ne sont en fait qu'une utilisation des possibilité de php,ce n'est pas une recette maison.Quand des fonctions php existe, inutile de réinventer la roue

pour convertir des é à ô etc..
function convert_accentToXML($texte)
 {
//converti les caracteres quelqu'ils soit en base 64
 
	if(isset($texte) && !empty($texte))
			{ 
	 //essai en base 64
			$texte=base64_encode($texte);
			}
	
	 return $texte;
 }
 

et l'opération inverse
 function convert_accentFromXML($texte)
 {	
//converti le contenu base64 vers du texte classique,un utf8_decode est utile suivant la config

	if(isset($texte) && !empty($texte))
		{		
		$texte=base64_decode($texte);
		 $texte=utf8_decode($texte);						
		}
 return $texte;
 }


je precise que mon probleme etait du au fait que je suis obligé de parcourir le xml, d'extraire chaque données de les travailler et de refaire un nouvel xml.Et c'est à ce moment extraction et reinsertion que ça plantais.
Un exemple tout bete avec la phrase Pensez à la barrière
dans mon xml j'avais par exemple <texte>Pensez à la barrière</texte>
a l'extraction ou la reecriture ca bloquais soit, (suivant le charset employé) , à:
Pensez le ---> le à faisait planter
soit à Pensez la barri ---> le è faisiat planter.
Alors evidemment la suite de mes noeuds etait totalement fausse...

Je dois dire que maintenant que l'ensemble de mes fonctions d'extraction et de reinsertion d'xml sont opérationnelles (et perfectible..), le gain de temps par rapport aux requetes classiques php-sql, est non négligeable.Et encore je bosse principalement en POO avec pear et smarty et les templates , qui est deja une programmation plus rapide que php classique.
1
RTTLE
 
J'ai exactement le même problème !!!! Personne pour une réponse ? SVP !! (SOS)
0
aragon300
 
La solution est d'utiliser une template full flash oubien flash avec du html seulement ! Moi j'ai abondonné avec le xml... J'ai dis au client que j'avais perdu trop de temps et qu'il devait acheter un autre template... A regarder le nombre de post sur le net en rapport a ce problème c'est ridicule.. Le language xml est fait pour l'anglais... Pour le reste bonne chance... J'ai eu un certain succès sous linux et direct sur le serveur mais il y a pas une explication logique. Car l'éditeur et un éditeur comme les autres..

Et tous ceux qui auront la solution n'ont qu'à la mettre ici soit sous la forme A B C D
les réponses du genre encode en utf-8 en haut ça dit rien a personne...

A
B
C
D
0
aragon300
 
La solution est d'utiliser une template full flash oubien flash avec du html seulement ! Moi j'ai abondonné avec le xml... A regarder le nombre de post sur le net en rapport a ce problème c'est ridicule.. Le language xml est fait pour l'anglais... Pour le reste bonne chance...
0

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

Posez votre question
RTTLE
 
J'ai passé tellement de temps sur ce template !!! j'avoue que j'aimerais bien trouvé une soluce !! j'ai en partie réglé un pb en ouvrant mon fichier sur bloc note et en l'"enregistrant sous" utf-8... ça évite de me suprimer le mot complet avec l'accent mais ne me met pas pour autant l'accent !! il disparait completement !!

exemple : régénérer ---> rgnrer
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
jeter un oeil sur ces deux sites....


https://www.commentcamarche.net/contents/489-caracteres-speciaux-html

http://sebsauvage.net/comprendre/ascii/index.html

.... après vous pourrez les récupérer

: )
0
aragon300
 
Bonjour,

Je n'ai pas de problème avec le HTML !

J'ai suivi les directives sur le site de Monster et cela ne fonctionne pas toujours. Alors pour ma part le xml je ne perd plus de temps avec cela...
0
RTTLE
 
Pareille... HTML ça se passe bien c'est juste XML/FLASH ... j'ai tout mis en MAJUSCULE... comme ça...
0
aragon300
 
Bonjour,

Oui j'ai effectivement utiliser cette méthode pour un autre par ce que le template passe bien. Mais cela n'a pas de sens... Quand je dis que j'ai tout essayé, j'ai vraiment tout essayé... J'y ais passé une semaine complète. Dans l'exemple de Monster il utilise comme exemple que quelques caractère russe mais ce n'est pas représentatif de toutes les accents du français. J'ai plusieurs ebook sur le xml (bible etc) en ce qui conserne le passage des caractères est très basique et les explications trop simpliste comme du genre encoder en UTF-8 c'est trop simple...

xml = englais point that it ! Vous remarquerez qu'il n'y aucune solution réel et cohérente.. A éviter pour les webmaster car il va perdre un temps fou donc $$$ a essayer de corriger ce problème... Et dire que le language xml a été developpé par des Canadiens de Toronto semble- t'il

Solution: template full flash - HTML flash tout fichier xml a éviter
0
Flachy Joe Messages postés 2303 Statut Membre 261
 
Les caractères encodés numériquement sont normalement accepté par les parsers par exemple :
& #233 ; pour é
par contre & eacute ; ne passera pas...
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
bonsoir, pour le problème d'accent j'ai été moi meme confronté au probleme sur un site que je m'occupe à développer pour ma boite
j'ai, je pense tout essayé depuis la creations de fonction qui convertissait en asscii, en entité html et j'en passe, en rajoutant des DTD dans mes xml,en modifiant les charset bref je croyais le probleme insoliuble.
Sau que j'ai fini par trouvé la solution, je vous la donne si ça peut aider.

il suffit lors de la creation de l'xml d'utiliser la fonction php base64_encode sur le contenu des items

et la absolument tout les caracteres passe sans probleme.

Evidemment pour afficher correctement le texte il faut faire l'operation inverse base64_decode, suivi eventuelement d'un utf_8decode

ca marche sur tout les caracteres sans probleme.
En esperant que ça serve à quelqu'un
0
plebras Messages postés 452 Statut Membre 121
 
Les caractères accentués marchent en (techno microsoft asp, . Net c#) si l'entête du fichier est
<?xml version="1.0" encoding="iso-8859-1"?> (sans codeage, décodage)

et non en UTF-8

à voir si vous pouvez tester dans votre cas
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
je confirme que non aussi bien en iso-8859-1, qu'en iso-8859-15.

Pour eclaircir le probleme auquel j'etais confronté, le but de mes fichier xml est de gerer dynamiquement des fichiers d'animations flash, (deja le flash ne lit que l'utf8).
Le probleme que j'avais c'est lors de la reecriture des xml, soit apres une MAJ des repertoires, soit suite a un cron, la reecriture plantais car les caracteres rencontrés é,à,ô etc.. ne semblais pas etre correctement interprété.

Lorsque le fichier xml est généré à la main l'entete 8859-1 passe bien , mais lorsque l'on genere dynamiquement un xml avec php on peut mettre l'entete qu'on veut ça plante quand on boucle le contenu pour reecrire le fichier XML
Je n'ai trouvé que la solution base 64 pour resoudre ce problème
0
aragon300
 
Cela en reviens a dire que la solution reste une recette maison ! C'est ça que je ne trouve pas normal et cohérent. Car un fichier xml ne devrait en pas être différent d'un HTML en rapport a l'encodage.. Et pour les solutions iso-8859-1, iso-8859-15 c'est les premières solutions que j'avais essayé.

Non tant que l'on retrouvera autant de problème avec ce language moi je refuse de perdre du temps avec ça.

Mais pour le bénéfice d'autre, la solution de code php est-ce une ligne de code a intégré dans le fichier %

soit plus explicite avec l'exemple du code ! Merci
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
c'est du bon travail.
ton travail évitera à certains de devenir chauve. :-)
merci d'avoir joins ton code.
R
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
de rien c'est avec plaisir, c'est aussi le but de ce forum ,c'est bien joli de voir des post disant probleme resolu, mais on sait pas comment ;-)
Quand je peut aider je le fait avec joie
0
Jojo Le Mérou
 
Salut,

Pour les Template Monster et pour le reste, il faut éditer dans Flash dans chaque case de texte dynamique (oui c'est galère) avec le bouton "caractères incorporés" et rajouter Latin I.
0
lila
 
merci infiniment, ça m'a aidé votre suggestion embedding en Latin I

bravo
0