[Flash] Problème avec les accents (UTF8)

Paul -  
 benjif69 -
Bonjour !

J'utilise Flash 8. J'ai crée un fichier swf qui récupère à l'aide de pages php un champ dans une base de données de type SQL (UTF8).

Quand j'utilise le backoffice (avec FCKeditor) je peux crée un article avec par exemple :

"Salut, Héo ?"

Cela enregistre dans la base de données :

"Salut, héo"

Je peux l'afficher correctement dans une page du site pas de problème, mais quand je récupère cette donnée dans Flash 8 je n'arrive pas a récupérer le fameux accent !

J'ai pourtant préciser que le champs texte est de type :

montexte.html=true;
montexte.htmlTexte=MonChampsEnBDD;

Ps : Flash gère bien le html, c'est a dire les balise <P> etc, mais pas ce fameux accent ! Pourquoi ?

Svp, donnez moi un petit coup de main !

Ps2: j'aide souvent sur ce forum pour une fois c'est moi qui demande un coup de main !
Configuration: Windows XP
Internet Explorer 7.0

14 réponses

  1. ofwolfandlucho
     
    Une petite contrib car je suis tombé sur un promblème que j'ai réussi à résoudre.

    Mon soucis était un fichier .txt apellé dans flash par un champ texte dynamique. Les accents n'étaient pas pris en compte.
    J'ai suivi le conseil de zestefraicheur donc rajouter les glyphes latin basique et latin I mais ça ne marchait toujours pas.

    J'ai donc ouvert mon .txt avec notepad++, puis "format" UTF-8. Tout les accents on étés remplacés par des caractères bizarres. Puis j'ai recollé mon texte avec les accents et là, miracle ça marche.
    Aucune idée du pourquoi du comment mais ça marche très bien. J'ai testé sur plusieurs fichiers .txt et ça marche à tous les coups.

    Voilà j'espère que ça va aider ceux qui rencontrerons ce problème.

    @+
    Luc
    9
    1. pete
       
      t fort
      0
    2. oui
       
      très utile ca maeche ! merci
      0
    3. passager
       
      En fait dans caractere/anti alias il faut selectionner texte bitmap
      0
    4. Gargamelle
       
      MERCI... J'ai bien galéré avant de lire votre solution qui marche nickel.
      0
    5. Mike
       
      Au Top!!! Un grand merci Luc, j'ai tellement galéré avec les txt importés et les accents dans flash...
      0
  2. Turbabo
     
    Salut à Tous,

    En résumé voici ce qui semble fonctionner :

    1. ACCENTS Dans Flash

    - Sélectionnez la fenêtre de texte dynamique dans laquelle vous allez afficher votre texte
    - dans les Propriétés , cliquez sur Intégrer
    - puis dans la liste, en maintenant la touche CTRL, selectionnez 'Latin basique' et 'Latin I'

    2. ACCENTS dans Flash à travers un fichier XML :

    - Le modifier dans un éditeur (ex : Notepad++) choisir "encoder en UTF-8"
    - Rentrer les accents
    L'uploader en mode Binaire (ex Filezilla ) choisir Transfert -> Type de Transfert -> Binaire
    6
    1. marco
       
      génial merci ce purée de truc n°1 je savais pas--- comme des fois on passe a coté de la base
      0
    2. quartzzz
       
      BRAVOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO TUBADO tu m'as sauvé la vie
      0
    3. Marmouze
       
      Super, merci pour cette astuce ... 15 jours que je galère sur ce pb :)
      0
    4. moimoi
       
      merci
      0
    5. moimoi
       
      if faut d'ailleurs décocher : MAJUSCULE - MINUSCULE- CHIFFRES
      puis selectionnez 'Latin basique' et 'Latin I' dans les options d'incorporations de polices et tous ces caractères spéciaux sont BIEN AFFICHES ... merci pour cette bonne piste TURBABO
      0
  3. santo
     
    utf8_encode() =)

    Flash ne lit que du utf8 ;)
    1
    1. zestefraicheur
       
      Pas forcement! Flash Cs3 lit désormais de nombreux formats. Il suffit juste de lui indiquer quelle banque de caractères il lui faut charger.

      Voici la procédure :

      - Selectionnez la fenêtre de texte dynamique dans laquelle vous allez afficher votre texte
      - dans les Propriétés , cliquez sur Intégrer
      - puis dans la liste, en maintenant la touche CTRL, selectionnez 'Latin basique' et 'Latin I'

      ...et les accents vont apparaître
      0
      1. LoftFactory > zestefraicheur
         
        T'es un génie! J'ai fait un milliard de sites et tu es le seul a avoir eu la réponse!

        Un milliard de mercis!
        0
      2. kat > zestefraicheur
         
        Super, merci ça marche nickel!
        0
      3. obonle > zestefraicheur
         
        Bravo c'est bien ça je cherchais l'astuce depuis un bon moment je suis passé par le utf8 l'enregistrement sur notepad en utf 8 etc...
        encore bravo et merci pour l'aide.
        0
  4. aide
     
    1) header("Content-Type: text/html; charset=UTF-8");

    2) Si tu utilise dreamwaver cs3, CTRL+J -->Titre/Codage en UTF-8

    Ca doit être ça :)
    1
    1. padlup
       
      pas suffisant
      rajoute $talignexml=utf8encode($talignexml) avant de faire ton print
      0
    2. Bigsmock
       
      Salut tout le monde,

      Si ça ne marche toujours pas chez vous, ouvrez votre XML dans DREAMWEAVER et enregisrez le avec la premiere option d'enregistrement (celle par défaut).
      J'ai cherché 1000 ans et enfin ça marce pour moi !
      0
      1. choupy > Bigsmock
         
        Bigsmock, un grand merci pour ton conseil, qui se révèle (après plusieurs heures sur cette problématique), tout à fait concluant ! J'utilise un fichier xml (UTF-8) et les caractères accentués ne s'affichaient pas dans mon swf. L'option "intégrer" du champ de texte dynamique, malgré la sélection des latins etc... niet.
        J'ai donc enregistré-sous, le fichier xml depuis Dreamweaver...
        Option à choisir ds "Formulaire de normalisation Unicole" : C (Décomposition canonique suivis d'une composition canonique).
        Sans cocher la case "Inclure une signature Unicole (BOM)", ça ne fonctionnait pas. Et le miracle fût. Donc cocher cette option en +.
        La classe man. ;-)
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gi29 Messages postés 6 Statut Membre 2
     
    Bonjour Messieurs et comme les exceptions ne font pas les règles,je voudrais intervenir un peu à la manière LoftFactory, pour vous dire d'avance Milles Merci

    14
    choupy, le jeudi 22 janvier 2009 à 01:05:01 -> çà ne marche pas !!!!!

    J'ai donc suivi vos conseils mais aucunes résolutions possible alors voici les codes xml et actionscript :

    pour XML::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    <?xml version="1.0" encoding="utf-8"?>
    <content
    delayTime = "9"
    slideshowX = "25"
    slideshowY = "25"
    menuVisible = "yes"
    menuDirection = "x"
    menuX = "25"
    menuY = "433"
    menuSpacing = "18"
    menuOutEdgeColor = "0x000000"
    menuOutBgColor = "0x333333"
    menuOverEdgeColor = "0x000000"
    menuOverBgColor = "0x999999">

    <slideshow>
    <photoX>0</photoX>
    <photoY>20</photoY>
    <textX>0</textX>
    <textY>330</textY>
    <textWidth>850</textWidth>
    <photo>home_images/1.jpg</photo>
    <description>
    <![CDATA[Bonjour.............Vous trouverez sur ce support une collection <font color="#00FF00"> d'outils et conseils</font> ainsi que quelques fichiers Multimédias]]>
    </description>
    </slideshow>

    <slideshow>
    <photoX>0</photoX>
    <photoY>40</photoY>
    <textX>0</textX>
    <textY>0</textY>
    <textWidth>850</textWidth>
    <photo>home_images/2.jpg</photo>
    <description>
    <![CDATA[Je vous propose la<font color="#00FF00"> Restauration du système</font> selon trois procédure ......................... pour faciliter la vie!]]>
    </description>
    </slideshow>

    </content>

    et pour flash ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    //-------------------------CREATE CONTROLS
    //create a movie clip which will hold the menu (boxes for each picture)
    this.createEmptyMovieClip("slideMenu",this.getNextHighestDepth());

    //--------------------------LOAD XML DATA

    function loadXML(success) {
    if (success) {
    xmlNode = this.firstChild;
    photoX = [];
    photoY = [];
    textX = [];
    textY = [];
    textW = [];
    photo = [];
    description = [];
    total = xmlNode.childNodes.length;
    //for loop attributes of each slide
    for (i=0; i<total; i++) {
    photoX[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
    photoY[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
    textX[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
    textY[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
    textW[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue;
    photo[i] = xmlNode.childNodes[i].childNodes[5].firstChild.nodeValue;
    description[i] = xmlNode.childNodes[i].childNodes[6].firstChild.nodeValue;
    }
    //main slide attributes
    delayTime = Number(this.firstChild.attributes.delayTime*1000);

    slideshowX = Number(this.firstChild.attributes.slideshowX);
    slideshowY = Number(this.firstChild.attributes.slideshowY);

    holder_mc._x = Number(slideshowX);
    holder_mc._y = Number(slideshowY);

    menuVisible = this.firstChild.attributes.menuVisible;
    //set slide visible/invisible according to the XML file
    if (menuVisible == "no" || menuVisible == "NO") {
    slideMenu._visible = false;
    } else {
    slideMenu._visible = true;
    }

    menuDirection = this.firstChild.attributes.menuDirection;

    menuX = Number(this.firstChild.attributes.menuX);
    menuY = Number(this.firstChild.attributes.menuY);
    menuSpacing = Number(this.firstChild.attributes.menuSpacing);

    //Slideshow controls X and Y positions
    slideMenu._x = menuX;
    slideMenu._y = menuY;

    menuOutEdge = this.firstChild.attributes.menuOutEdgeColor;
    menuOutBg = this.firstChild.attributes.menuOutBgColor;
    menuOverEdge = this.firstChild.attributes.menuOverEdgeColor;
    menuOverBg = this.firstChild.attributes.menuOverBgColor;

    //initialize menu
    initMenu();
    //initialize slide
    initSlide();
    } else {
    trace("Error loading XML");
    }
    delete xmlData;
    }
    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load("home.xml");

    //----------------------------MAIN FUNCTIONS

    //clear the interval in the beginning
    //(just incase user clicks on a different menu
    //and goes back - start timer over)
    function clearListener() {
    clearInterval(timeInterval);
    }

    etc......................... Well apres cette analyse,s'il vous reste quelques instant pour me répondre alors "retour ligne 1".

    Mon é-mail : ggi@laposte.net
    1
  7. redlabels
     
    ça march le UTF8,il accepte tous les accents,jai u le mem problem ke ofwolfandlucho,même système d'appel de fichier text par flash,j'ai cherché pendant des heures.....et j'ai trouvé,je vous aimmmmmmmm,wahou ,ça maaaaaaaaaaaaaaaarch!!!!
    1
    1. BBFUNK01
       
      Hello,

      merci à tous pour vos contributions et surtout vos solutions à un problème qui somme toute bidon, quand on connaît la solution, commençait à me faire fumer les oreilles ;-)

      A plus,

      BBFUNK01
      0
  8. Paul
     
    Correction -> Cela enregistre dans la base de données :

    "Salut toi ! & eacute ; ho!"

    (Désole mon message a été interprété.. comme quoi lol)
    0
    1. Paul
       
      Je précise, désole j'ai oublié que j'utilise AMFPHP 1.4...
      0
  9. vct
     
    Hello, merci pour le tuyau mais ça ne fonctionne pas j'ai le même problème, dès qu'un caractère porte un accent ou que je retrouve des caractères spéciaux comme ' " le caractère n'est pas affiché par flash.
    Perso je puise les données dans un xml et j'affiche dans du flash sur une page web.
    Je suis partout en UTF-8 je ne vois pas quel réglage supplémentaire pourrait résoudre le pb ! ?
    0
  10. MGG
     
    Pareil, prend mes données dans du XML pour les lire dans le flash mais malgré UTF-8 et la textbox dynamique qui intégre ce qu'il faut ça ne marche pas... ça vient du xml?
    0
  11. Chouch74
     
    Alors le coup d'enregistrer le XML via Dremaweaver ca marche bien en effet, par contre pour moi la condition c'etatit que mon texte dynamique Utiliser les polices périphériques ... Et là pas de soucis ...
    0
  12. écard
     
    Bonjour,
    J'avais le même souci d'accentuation avec mes fichiers XML... et je viens de trouver la soluce (et comme d'hab. avec le binaire, c'est tout bête !) : au moment d'uploader vos fichiers XML sur votre FTP, assurez-vous de les envoyer en données brutes ! (et pas en automatique, ou texte ou binhex,...)
    Voilà j'espère que ça en aidera quelqu'un(e)s ;)
    0
  13. Mota2
     
    Halala... Même avec toutes ces solutions, rien ne se passe... Je suis bien deg. quand même !!
    ça fait 2 jours que je suis sur ce problème !!!

    Je suis tout frustré !!
    0
    1. fod
       
      Salut Mota,

      as tu finalement trouvé la solution à ton probleme ?
      0
  14. benjif69
     
    Bonjour, même en intégrant les caractère spéciaux dans le flash, avec un fichier txt codé en UTF-8, les caractères spéciaux sont bien affiché ormis le caractère & !

    Depuis mes essais directement en ouvrant le swf, avec dans le même dossier le fichier txt correspondant, je ne parviens pas à faire afficher le & !

    Savez-vous comment inclure ce petit "&" qui me prend bien la tête ?
    0