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

[Fermé]
Signaler
-
 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 !

14 réponses


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

très utile ca maeche ! merci
En fait dans caractere/anti alias il faut selectionner texte bitmap
MERCI... J'ai bien galéré avant de lire votre solution qui marche nickel.
Au Top!!! Un grand merci Luc, j'ai tellement galéré avec les txt importés et les accents dans flash...
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
Super, merci pour cette astuce ... 15 jours que je galère sur ce pb :)
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
Merci pour les pistes.
Même conclusion que "moimoi".
Merci "Turbabo" et vous tous.

En effet, je travaillais un site XML Flash dont les lettres avec accents n'apparaissaient pas (é, à, etc.) Recherches, analyses, essais; j'ai été jusqu'à la conversion de fichier .js et j'en passe.
Lorsqu'une personne éclairée donne ici une solution, vous pouvez estimez qu'il y a du temps derrière.
En bref, il a suffit de "cocher" l'option "Latin I" pour chaque Font, dans le fichier Flash..

Je vous résume:
Dans le fichier .fla, j'ai localisé dans la "librairie" les éléments "Font".
Double-cliqué sur un, ce qui les a tous affiché.
Dans "propriété": appuyé sur l'option "embed": puis pour chaque font, sélectionné les types de caractères à intégrer, en l'occurence j'ai ajouté "Latin I".

Cela a fonctionné et les accents sont maintenant inclus.

Nb. Vérifiez néanmoins si la "font" utilisée comprend les accents à l'origine.
(en double-cliquant sur la font originale en dehors de flash, par exemple).

Tous ces détails techniques sont véritablement pénibles parfois, mais si c'est une part de votre métier, n'oubliez pas de le faire valoir, car un néophyte ignore toutes ces démarches.

Bon courage,
Ahhhhhhhhhhhhhhhhhhhhhhhh merci beaucoup beaucoup beaucoup J'ai passé 3 mois de ma vie à chercher la solution à ce problème et enfin... merci encore
utf8_encode() =)

Flash ne lit que du utf8 ;)

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
> 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!
> zestefraicheur
Super, merci ça marche nickel!
> 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.
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 :)
pas suffisant
rajoute $talignexml=utf8encode($talignexml) avant de faire ton print
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 !
> 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. ;-)
Messages postés
5
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
20 avril 2009
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
ç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!!!!
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
Correction -> Cela enregistre dans la base de données :

"Salut toi ! & eacute ; ho!"

(Désole mon message a été interprété.. comme quoi lol)
Je précise, désole j'ai oublié que j'utilise AMFPHP 1.4...
Bonjour,
le mem pb :'(
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 ! ?
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?
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 ...
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 ;)
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é !!
Salut Mota,

as tu finalement trouvé la solution à ton probleme ?
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 ?