Flash, PHP, XML, AS, MySQL et plus d'accents.

missou

Membre actif
15 Novembre 2007
208
35
Vichy (03)
www.ebella-book.com
Bonjour,

Je m'adresse à vous, car j'ai un petit problème avec une animation flash téléchargée.

Je souhaite intégré à mon futur site un coverflow généré par un XML.

Le XML fourni est écrit en dur, mais j'ai créé une page PHP qui le génère à partir de ma BDD MySQL. Mais voilà, une fois affichée, l'animation mange mes accents, plus au moins une des lettres suivantes.

J'ai fait pas mal de recherches j'ai vu plusieurs morceaux de solutions pas forcément tous efficaces, donc je me tourne vers vous.

Je travaille avec Dream et Flash CS4, si ça peut aider.

Edit : Je me suis trompé de partie pour poster, j'aurais poster dans Développement Web, j'ai demandé à un Modo de le déplacer, pas la peine de me dire qu'il n'est pas à sa place :)
 
Salut
Ton message n'est pas à la bonne place. *mode lourd off*
Pourrais-tu mettre cette page en ligne pour qu'on puisse se rendre compte ?
J'ai déjà eu ce problème, pas exactement dans les mêmes circonstances. De mémoire, c'est encore l'encodage des caractères (pour des fichiers "statiques" j'ai enfin compris comment ça marchait mais j'ai encore énormément de mal à gérer l'encodage BDD/php).
@++
 
Il me semble effectivement que les maitres sont mots sont "encodage des caractères", grâce aux recherches que j'ai fait hier, j'ai pu me rendre compte, que je n'étais pas le seul à avoir eu un problème similaire, et que la solution tourne plus ou moins autour de l'encodage.

Je vous mets quelques extraits de codes pour voir si ça aide :

Le début de ma page PHP qui génère le XML
Bloc de code:
<?php
    header("Content-type: application/xml");

    /*echo "<?xml version='1.0' encoding='ISO-8859-1' ?>";
    echo "<?xml version=' 1.0' encoding='UTF-8' ?>";*/

    echo "<artworkinfo>";
Comme on peut le voir, j'ai deux encoding différents, j'ai essayé, simultanément l'un et l'autre et sans, le résultat reste le même. Comme vu sur un forum, j'ai tenté, sur les champs de texte dynamique de l'animation d'intégrer les glyphes contenant les accents, mais mon problème reste le même.

Et je sais pas si ça aide (je connais un peu l'AS, mais j'ai du mal avec la communication AS/XML/BDD) le bout de code AS qui je suppose appelle le XML.
Bloc de code:
xmlData.ignoreWhite = true;
xmlData.load("coverflow/albuminfo.xml");
Je précise, que le XML est généré à chaque appel.
J'ai également essayé, avec un XML écrit en dur, mais le problème persiste.

Et précision, dans le bout de code AS, il appelle un fichier XML, je ne me suis pas trompé, que ce soit un fichier XML ou ma page PHP qui génère le XML, le problème reste le même.
 
Il me semble que c'est le bordel dans ma BDD (mais jusqu'à maintenant je n'avais pas eu de problèmes), je regarde :)

Edit :

C'est bien ce que je disais, c'est un peu le bordel :
(j'avoue ne jamais avoir bien compris comment tout ceci fonctionnait :rose: )
 
Bonjour,

Logiquement, il faut que de bout en bout, le même encodage soit utilisé.
C'est une question de cohérence :)
Si ta BDD est en UTF-8, tout le reste devra l'être.

Dans tes png, on peut voir que tu es en latin_swedish_1 :) (tu aimes les suédoises? :love:) et dans ta page php générant le xml tu encodes en utf-8 (ou en latin-1 dans la ligne en commentaire).

Essayes de règler ton souci de cohérence dans tes différents éléments, et je pense que cela ira bcps mieux.

Personnellement j'utilise utf-8, plus international....
 
Pour faire court :

CDATA ;)


#edit : en fait je vais rallonger un chouilla :D

Attention le swedish dans la bdd c'est pas grave du tout ça n'a rien à voir avec ton problème.
Essaies de forcer le header utf8 en PHP, de bien faire de l'utf8, et de mettre tes données dans des CDATA dans le XML.
 
Merci, j'allais te demander de rallonger :)

Donc en gros mes tables en Latin1, ça gène pas, j'ai passé la BDD en Latin1 aussi au lieu de l'UTF8 pour que tout concorde, au moins au sein de la BDD.

Ensuite, je mets le header XML en UTF8, ça donc :
Bloc de code:
<?xml version=' 1.0' encoding='UTF-8' ?>
?

Et quand tu dis de bien faire de l'UTF8, cad ? Si le header XML y est, ça roule ou pas ? Il manquerait quoi ?

je galère vraiment avec ces histoires d'interclassement, j'ai bien un tuto du SDZ, faudrait que je le lise demain ...

Et mettre les données dans des CDATA ? Il me semble avoir vu un truc qui y ressemble en xHTML, mais pas en XML ?! Si t'as un exemple :)
 
Pour les CDATA, voilà la syntaxe, oublie pas que ça te fera un noeaud de plus à chaque texte, forcément.
Bloc de code:
<unebalise><![CDATA[bla bla bli bli blou]]> </unebalise >

Si j'ai bien compris tu génères le XML depuis PHP.
Tu dois donc forcer le header utf8 avec PHP, je suis presque certain que ça vient de là.
À mon avis tu remplis bien avec le bon encodage, tu mets bien ton header en texte en haut du XML, mais c'est pas pour ça que PHP te génère un fichier en utf8 entièrement (je suis pas très clair hein, c'est normal :D ).

Ci-joint un extrait du début de mon fichier XmlRenderer.php, qui comme son nom l'indique me sert à faire ce que tu fais, c'est à dire générer du XML à la volée depuis ma BDD pour Flash.

Bloc de code:
<?php
header('Content-Type: text/xml; charset=UTF-8');
 
Bonsoir,

Une BDD en latin 1 et du php en utf-8, vous trouvez cela normal?
Ce sont 2 encodages différents.

Comment sont tes accents dans ta BDD?

Si c'est pour la faire à la brute, ça peut fonctionner en forçant le header, mais c'est un sale comme truc là :)
 
- une bdd en latin ;
- du php en latin (parce qu'il gère unicode comme une m****) ;
- utf8_encode c'est pas pour décorer la doc de php, qui à priori est accessible à tout le monde ;
- les CDATA c'est pas obligatoire, mais c'est flash, mieux vaut trop que pas assez ;
- forcer le header utf8 en php, c'est sale ? C'est une fonction, les fonctions sont faites pour être utilisées. Peut être le mot "forcer" est il mal choisi ? "Configurer" serait plus approprié ?



obi, membre actif du CCGQRQCPÇMQPRDM*

* Comité Contre les Gens Qui Répondent Que C'est Pas Ça Mais Qui Proposent Rien De Mieux
 
Bonjour,

Obi wan membre émérite des GQST (Gens Qui Savent Tout) une brache des CCGQRQCPÇMQPRDM ...
J'ai proposé des choses, après si vous ne savez pas lire, au pire entre le lignes, je n'y suis pour rien.
Le code php indiqué n'est ni en utf8 ni en latin, il est commenté avec les 2...
Donc quel encodage est choisi dans ce cas?

Et oui je trouve que forcer le header alors que le reste n'est pas dans le même encodage, est un peu abusé. Forcer est semble t-il trop fort, si ça peut te faire plaisir (ça sera toujours ça de gagné).
Après faites comme vous le souhaitez.

Mais pour le moment le souci n'est pas réglé...
 
Et oui je trouve que forcer le header alors que le reste n'est pas dans le même encodage, est un peu abusé.
Si tu veux, mais dans la vraie vie faire du PHP avec des fichiers encodés en UTF-8 c'est suicidaire.
Je préfère avoir ma base encodée pareil que mon PHP, ce qui semble logique.
Ensuite Flash, lui, il gère bien que l'UTF-8.
Donc à un moment il faut bien passer d'un encodage à l'autre.
Quand tu génères un XML avec PHP, si tu es bien sûr que tu remplis qu'avec des choses encodées en utf-8, où est le problème de définir le header en utf-8 ?

Mais pour le moment le souci n'est pas réglé...
Je fais ça tous les jours avec la méthode indiquée dans mon post précédent, et ça fonctionne. Après c'est vrai que niveau dév web et flash, je débute, alors mon avis est à prendre avec précaution.

J'aimerais bien voir un exemple de génération de XML pour flash depuis PHP, en UTF8 d'un bout à l'autre (base, php, xml généré), qui fonctionne vraiment.
Des exemples avec base latin, php latin, et xml utf-8, j'en ai à la pelle par contre...
 
J'aimerais bien voir un exemple de génération de XML pour flash depuis PHP, en UTF8 d'un bout à l'autre (base, php, xml généré), qui fonctionne vraiment.
Des exemples avec base latin, php latin, et xml utf-8, j'en ai à la pelle par contre...

Avec dotclear2, la base est en utf8 et les gabarits (fichier html, fichier xml pour rss, etc) sont en utf8, les fichiers php en iso mais en s'en fout puisque tout est externe : tout ce qui est texte est dans des fichiers .po aux aussi en utf8. ;)
 
Ola gloup gloup :) je savais bien que p4bl0 ou toi alliez me sortir un truc de derrière les fagots :D
Bon je veux pas pinailler, mais c'est toujours pas en utf-8 d'un bout à l'autre... Il laissent leur php en iso, et c'est pas pour rien.

Vais quand meme aller voir comment fonctionne dotclear, il est ptetre temps de changer ma gestion des caractères ^^ ;)