Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2012, 16h44   #1
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
Par défaut Methode replace ne remplace pas les accents

Bonjours à toutes et à tous,

Ca va faire maintenant plus de 20 minutes que je suis bloqué à cause d'un problème et je ne vois pas du tout de quoi cela provient, je m'en remet donc à vous pour voir si vous avez une idée de mon soucis ^^

Je vous explique, j'ai fait une fonction qui remplace (normalement...) les accents dans un texte et renvoie ce texte formaté (donc les accents sont mis en HTML).

Voici donc mon fameux bout de code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function EncodeString(s){
	alert('avant : '+s);
var txt=s.replace(/à/g,"à");
txt=txt.replace(/á/g,"á");
txt=txt.replace(/â/g,"â");
txt=txt.replace(/ã/g,"ã");
txt=txt.replace(/ä/g,"ä");
txt=txt.replace(/å/g,"å");
txt=txt.replace(/æ/g,"æ");
txt=txt.replace(/è/g,"è");
txt=txt.replace(/é/g,"é");
txt=txt.replace(/ê/g,"ê");
txt=txt.replace(/ë/g,"ë");
 
alert('apres : '+txt);
return txt;
}
Sauf que c'est bien beau... Théoriquement ça devrait fonctionner (du moins il me semble ^^) et donc quand je passe en paramètre à la fonction une chaine du genre "àèéàèéàè" cela me renvoie.........."àèéàèéàè" EXACTEMENT la même chose...

Es-ce que vous voyez d’où pourrais provenir le problème docteur ?



Merci d'avance pour votre aide

A, et je vous rassure, la fonction est écrite de cette façons car je l'ai modifié 50 fois et j'en avais marre alors j'ai laissé ça de façon très sale je sais XD
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 16h55   #2
Membre Expert
 
Avatar de rotrevrep
 
Homme yannick inizan
Secrétaire d'état à la procrastination
Inscription : février 2011
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme yannick inizan
Âge : 25
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Secrétaire d'état à la procrastination
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 304
Points : 1 118
Points : 1 118
Envoyer un message via MSN à rotrevrep Envoyer un message via Skype™ à rotrevrep
et si tout simplement :
Code :
1
2
txt=txt.replace("é","é");
txt=txt.replace("ê","ê");
mais ce n'est que mon idée, fait en ce que tu veux !
__________________
(marquer un post résolu si vous êtes satisfait de la réponse )
le chat caramail de retour ? :/ http://www.tchats.net/beta.php
les projets web en cours sont sur : https://github.com/rotrevrep
rotrevrep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h01   #3
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonjour,
cela fonctionnera correctement pour peu que l'encodage des caractères soit le bon.

TO
: rotrevrep
é et ê sont considérées comme des variables dans ce cas.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h02   #4
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
Merci pour ta réponse rotrevrep.

Cela ne fonctionne pas et ne fonctionnera pas, car si je marque comme tu l'as écrit, javascript vas prendre é comme une variable, et ce n'en est pas une ^^

J'ai cherché sur le forum quelqu'un qui avait le même problème ici exactement.

J'ai donc recopier la fonction donnée en fin (celle qui est correcte donc) et cela ne passe pas non plus...

Merci

[EDIT]
J'avais pas vus que tu avais écrit NoSmoking ^^

Merci pour ta réponse, mais qu'entend tu pas l'encodage des caractère ?

Tu veux dire dans mon html qu'il soit déclaré en temps qu'UTF-8 ou autre?

Merci
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h03   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787


Ben pourtant ça fonctionne bien...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h26   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
utf-8 ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h34   #7
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
Merci pour vos réponses,

J'ai bien testé pour l'UTF-8, mais j'ai toujours le même résultat...

Si je fais mon alert javascript il est bien censé m'afficher les caractère en tant que á et non "à" normalement non ?

(pour le header html j'avais déjà ceci <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> mais ne change rien)
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h38   #8
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
Code :
alert('é'.replace('é','&aacute'));
ça affiche bien '&aacute'.
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/01/2012, 22h58   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
il n'y a pas que le header ...
le fichier lui même doit etre en utf8
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2012, 11h05   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Citation:
Envoyé par Willpower
Code :
alert('é'.replace('é','&aacute'));
ça affiche bien '&aacute'.
Ben oui... Je vois pas où se situe le problème

replace.png
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 09h01   #11
Membre du Club
 
Avatar de tidus_6_9_2
 
Inscription : janvier 2008
Messages : 150
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 150
Points : 57
Points : 57
Bonjour à tous,

Merci SpaceFrog pour ta précision. Je vois désormais ou se situe le problème.
Mais je ne vois pas vraiment comment je peux déclarer un fichier que j'include dans une page qui est en UTF-8 pour indiquer qu'il doit lui aussi être en UTF-8 :-S

Merci encore pour votre aide



[EDIT]

Vus que je n'arrivais pas à mettre en UTF-8 une page que j'incluais dans la page principal, j'ai testé ceci :

Code :
1
2
 
vstring = unescape(encodeURIComponent(vstring));
Ensuite j'encode avec ma fonction et cela fonctionne très bien. Sauf que voilà... cela fonctionne avec une variable qui contient des accents mais pas avec deux variables... Je ne vois pas vraiment pourquoi... Le code :


Code :
1
2
3
4
5
6
7
8
9
10
11
 
Conc_NomCategorie = unescape(encodeURIComponent(Conc_NomCategorie));
Conc_NomSousCategorie = unescape(encodeURIComponent(Conc_NomCategorie));
alert('modes utf-8 : '+Conc_NomCategorie);
alert('modes utf-8 : '+Conc_NomSousCategorie);
 
Conc_NomCategorie = EncodeString(Conc_NomCategorie);
Conc_NomSousCategorie = EncodeString(Conc_NomSousCategorie);
 
alert('modes EncodeString : '+Conc_NomCategorie);
alert('modes EncodeString : '+Conc_NomSousCategorie);
Donc avec "Conc_NomCategorie" tout passe hyper bien, mes accents sont bien remplacé. Par contre avec Conc_NomSousCategorie qui a exactement le même traitement je n'ai pas le même résultat... Il m'affiche n'importe quoi. Pourtant j'encode bien la variable non ?

Merci d'avance
tidus_6_9_2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web