Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1293 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Textes dynamiques chinois/français [resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Textes dynamiques chinois/français [resolu]

n°1231361
fabowl
Posté le 26-10-2005 à 11:20:32  profilanswer
 

Bonjour,
 
Je cherche à faire une galerie de photos flash avec un commentaire pour chacune pour un site français / chinois. Pour le français, no pb, ça fonctionne, mais pour le chinois c'est une autre affaire. Les caractères de la zone de texte dynamique n'apparaîssent pas et sont remplacés par des carrés. Pourtant, la police que j'utilise est "Verdana", les caractères chinois existent donc, j'ai même essayé dans la police "_sans", mais sans succès.
 
Mon flash appelle un fichier PHP qui va prendre les images et textes associés de la base de données selon la langue choisie, et renvoie une architecture XML (plus facile à gérer avec Flash par la suite).
 
Il doit y avoir un problème d'encodage, ou je ne sais quoi. Voici mon code PHP qui génère l'XML :
 

Code :
  1. <?php
  2. session_start();
  3. require_once("include/connexion.php" );
  4. require_once("include/fonctions.php" );
  5. // $type est une variable permettant de définir quel type de photos est à sélectionner (par ex : photos de villes, paysages, ...)
  6. $type = $_REQUEST['type'];
  7. // $_SESSION['lang'] vaut soit "fr" soit "cn"
  8. $q = "SELECT photo_small, texte_" . $_SESSION['lang'] . " AS texte FROM photo_flash WHERE type = '$type' AND texte_" . $_SESSION['lang'] . " != ''";
  9. $res = mysql_query($q, $GLOBALS['connexion']);
  10. // Type d'encodage de caractères selon la langue
  11. if($_SESSION['lang'] == "cn" )
  12. echo utf8_encode("<?xml version=\"1.0\" encoding=\"gb2312\" ?>" );
  13. else
  14. echo utf8_encode("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" );
  15. ?>
  16. <diaporama>
  17. <?php
  18. while($l = mysql_fetch_array($res)) {
  19. echo "\t<image url=\"images_flash/" . $l['photo_small'] . "\" texte=\"" . decode_url($l['texte']) . "\" />\n";
  20. }
  21. ?>
  22. </diaporama>


 
Je pense que le problème vient de mon code PHP, au niveau de l'encodage ...  :pt1cable:  
Quelqu'un a une idée ?
 
Merci d'avance !


Message édité par fabowl le 27-10-2005 à 10:37:17
mood
Publicité
Posté le 26-10-2005 à 11:20:32  profilanswer
 

n°1231405
fabowl
Posté le 26-10-2005 à 12:17:01  profilanswer
 

J'ai légèrement changé mon code PHP en parcourant des sites et le forum :
 

Code :
  1. <?php
  2. session_start();
  3. require_once("include/connexion.php" );
  4. require_once("include/fonctions.php" );
  5. $type = $_REQUEST['type'];
  6. $q = "SELECT photo_small, texte_" . $_SESSION['lang'] . " AS texte FROM photo_flash WHERE type = '$type' AND texte_" . $_SESSION['lang'] . " != ''";
  7. $res = mysql_query($q, $GLOBALS['connexion']);
  8. echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
  9. echo "<diaporama>\n";
  10. ?>
  11. <?php
  12. while($l = mysql_fetch_array($res)) {
  13. echo "\t<image url=\"images_flash/" . $l['photo_small'] . "\" texte=\"" . utf8_encode(decode_url($l['texte'])) . "\" />\n";
  14. }
  15. echo "\n</diaporama>";
  16. ?>


 
J'ai utilisé utf8_encode($chaine) et gardé uniquement l'encodage UTF-8 pour coder l'XML comme l'indiquait le site http://zoneflashmx.free.fr/zone_fl [...] epage.html mais ça ne change rien

n°1231452
mechkurt
Posté le 26-10-2005 à 13:01:42  profilanswer
 

si tu accede le xml depuis ton navigateur, tu as les bon carracteres?
-> si oui le  PB vient de Flash, mais je vois pas pourquoi...
-> sinon c'est ton script PHP (mauvaise categorie)


---------------
D3
n°1231471
fabowl
Posté le 26-10-2005 à 13:38:03  profilanswer
 

Voici la source du fichier XML renvoyé :
 

Code :
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <diaporama>
  3. <image url="images_flash/1.jpg" texte="注册用户" />
  4. <image url="images_flash/4.jpg" texte="用户" />
  5. </diaporama>


 
Là, ça affiche les vrais caractères chinois (parce que c'est interprété par le navigateur sur le forum lol) mais la source du fichier indique réellement les caractères encodés avec un & devant (& #27880; par exemple)
C'est bien ce que je souhaite récupérer depuis Flash. Dans Flash, j'ai ma zone de texte dynamique HTML, avec la police "_sans", qui charge tous les caractères latins et chinois (pour le lissage).


Message édité par fabowl le 26-10-2005 à 13:40:49
n°1232174
fabowl
Posté le 27-10-2005 à 10:37:02  profilanswer
 

J'ai trouvé la solution !
 
Après plusieurs heures de bidouillage, j'ai résolu mon problème, et comme d'habitude, c'était un petit détail. Mon code PHP fonctionne bien, mon chargement flash aussi. C'était juste que j'avais intégré les caractères latins et chinois dans ma zone de texte dynamique. J'ai essayé de ne pas les intégrer, et ça fonctionne comme par magie !
Il doit surement y avoir un moyen de les intégrer au flash, mais il doit falloir utiliser une font spéciale, ce qui allourdirait grandement le swf.  
 
Je me contenterais des font non lissée !

n°1232213
mechkurt
Posté le 27-10-2005 à 11:03:59  profilanswer
 

effectivement l'incorporation de typo necessite un champs texte dynamique avec la plage de caracteres a incorporer.
par contre j'ignorais que les trois typos _sans _serif et _typewriter non seulement n'avait pas besoin de  ca (mais dans la mesure ou elle sont incorpore au player c'est assez logique finalement) mais en plus que ca genait leur affichage...
je pensais que tu avait dabord essayé sans puis avec ;)
 
nouveaute depuis Flash player 8 on a plus besoin de ce code pour les typos incluses:

Code :
  1. monformatdetexte = new TextFormat();
  2. monformatdetexte .font = "matypo";
  3. montexte_txt.setTextFormat(monformatdetexte );
  4. montexte_txt.embedFonts = true;


il suffit d'utiliser la typo de la bibliotheque (celle avec un *)
 
 :(  malheureusement ca ne marche pas avec Flash player 7 on vas donc devoir garder ces qq lignes de codes encore qq temps...


Message édité par mechkurt le 27-10-2005 à 11:04:15

---------------
D3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Textes dynamiques chinois/français [resolu]

 

Sujets relatifs
RESOLU - [EXCEL-VBA] Comment exécuter une macro si excel perd le focus[Résolu][SQL] PB de requete (2en 1 ? comme le ...) trop dur pour moi !
FCKEDITOR=>resoluDIV sortant de sa DIV conteneur [RESOLU]
[CSS][Résolu] Un pixel en trop sur du li[RESOLU] problème au lancement de VS 2003
[Résolu] Valeur & Index des CheckBox (OLEObjects)[Résolu][SQL] Convertion de valeurs dans une requete SQL
[Résolu] Insertion de CheckBox automatique[résolu] erreur javascript sous IE (FireFox et Opera ok)
Plus de sujets relatifs à : Textes dynamiques chinois/français [resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR