Modifier les apostrophes et autres caractères made in word dans flash

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 053 fois - Téléchargée 16 fois

Contenu du snippet

Bonjour après avoir un peu trop cherché sur les pages de mon navigatuer pour trouver une solution afin d'afficher proprement un texte généré par une B.D par php sur un xml.
En preùmier un conseil :
-si vos accents n'apparaissent c'est que votre xml est codé en ANSI (vous verrez ça en l'ouvrant dans le bloc notes) donc NE PAS OUBLIER D'INDIQUER AU DEV PHP D'ENCODER EN UTF 8 (y'a une commande pour ça), ça ne suffit pas de l'indiquer en dé&but de doc.
-Ensuite si votre client à la délicieuse habitude de jouer du ctrl-c ctrl-v depuis word certains autres caractères n'apparaitront pas non plus ( entre autre les apostrophes, le signe euro, les "e dans l'o") c'est que word est un peu rock and roll dans sa notation...
Du coup voila une petite astuce pour remettre tout ce beau monde en ordre:

Source / Exemple :


//on appelle la fonction en la dotant d'un nom de variable qui contiendra la chaine corrigée 
//(ma_var=Br_Converter(ma_var_texte)
function Br_Converter(cible) {

	//Je m'assure de l'inanité de ma chaine (elle contient des balises <br/> et css)
        chaine=cible.toString();
	//trace("chaine avant conversion : "+chaine);
	tableau_temp=new Array();
        //je vire les retours chariots "made in windows" que flash interprète mal
	tableau_temp = chaine.split("\n");
	//et je les remplace par un espace ( selon on pourra corriger avec un retour à la ligne <br/>)
        chaine = tableau_temp.join(" ");
	//reinitialisation du tableau
        tableau_temp=[];
	//autre façons de noter les retours chariot
	tableau_temp = chaine.split("\r");
	chaine = tableau_temp.join(" ");
	tableau_temp=[];
	//le String.fromCharCode(146) c'est la notation décimale de notre apostrophes indisciplinée
	tableau_temp = chaine.split(String.fromCharCode(146));
	chaine = tableau_temp.join("'");
	//trace ("////Br_converter ////"+newline+chaine);
	//trace("RESULTAT : "+chaine+newline+"------------------------------------------------");
	return (chaine);
}

Conclusion :


pour chaque caractère à réinterpréter on reprendra sa notation décimale et on la remplace par quelquechose de digeste pour flash (en HTML si on met son textfield à HTML=true);
voilà j'espère que ça rendra service
A plus
Steph

NDR: la commande cData dans le xml n'est pas utile ici.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.