IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Encodage UTF8 AJAX Updater et accent [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut Encodage UTF8 AJAX Updater et accent
    bonjour,

    je travail actuellement sur ajax et j'ai un problème avec l'encodage de mes accents dans ma base de donnée.
    Je m'explique :
    A l'initialisation de ma page A je charge un autre fichier B dans une div.
    l'encodage pour ma page est fait de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    HTML>
    <HEAD>
    <TITLE>essai fongus</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <LINK REL="SHORTCUT ICON" HREF="<?=$config->baseURL?>netika.ico">
    <SCRIPT LANGUAGE='Javascript' src='<?=$config->includeURL?>lib.js' ></SCRIPT>
    <script LANGUAGE="Javascript" src="<?= $config->includeURL?>ajax/prototype.js"></script>
    <script LANGUAGE="Javascript" src="<?= $config->includeURL?>ajax/rico.js"></script>
    </head>
    l'encodage pour ma page B se fait ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Content-type: text/html; charset=ISO-8859-1');
    j'utilise la fonction Ajax.Updater de prototype pour recharger ma page B dans ma div sans tout recharger à chaque fois. pour cela j'utilise cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function afficherModifierDansDiv(nomDiv,page,parametre){
    	alert(parametre);
    	var myAjax = new Ajax.Updater(nomDiv,page,{
    								method: 'get',
    								parameters: parametre,
    								evalScripts: true
     
    							});
     
    }
    Mon problème étant que lorsque que je valide un formulaire via la fonction du dessus couplé avec la fonction Form.serialize(); les informations transmisent à ma base de données sont mal encodé pour les accents par exemple. du style rué pour rué

    Si vous avez une idée je suis à l'ecoute.
    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    j'ai trouvé une solution, mais il est possible qu'il y ait plus simple.
    Lors de l'insertion de mes $_GET ou $_POST dans la bdd, je les fais passer dans la fonction utf8_decode()
    http://www.php.net/manual/fr/function.utf8-decode.php
    qui va te permettre d'obtenir la forme iso

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    salut,

    oui j'y est déjà pensé, et je les mêmes utilisé mais ça n'a pas marché.
    donc je suis toujours bloqué au même point.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    tu fais bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'INSERT INTO ... SET variable=\''.utf8_decode($_GET['variable']).'\' ...;
    car ca a marché sur tous les sites que j'ai codé en ajax.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    re, voila,

    j'ai trouvé une solution mais le problème étant que j'utilise une méthode un peu différente voila ce que je fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach($_GET as $key=>$value){
     
    	   $value=utf8_decode($value);
    	   $_GET[$key]=$value;
     
     
      }
    Le probleme c'est que je n'utilise pas $_get['nomvar'] pour interprété mon résultat mais $nomvar directement. ce qui fait que le truc du dessus ne marche pas.
    si t'as une idée ou quelqu'un je suis open

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    re,

    en fait t'as solution est viable, mais disons que j'ai une quinzaine de page et dedans je ne sais combien de variables de formulaire donc, je cherche à automatisé cette transformation.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    re,

    donc c'est bon j'ai réussi en utilisant

    ${key}=$value;

    voilou plus les gens.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    une autre solution mais plus risqué est de changé tout les URIencode dans la librairie par des escape() et tout les URIDecode par des unescape() et et apres ca fonctionne tout aussi bien.
    ++

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai le même problème mais malheureusement je suis en ASP donc je n'ai pas de fonction pour décoder l'UTF-8.

    Je ne comprends pas pourquoi Prototype fait l'encodage directement en UTF-8, il devrait laisser le choix.

    Quelqu'un a t'il une autre solution ?

    Merci

  10. #10
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    j'ai le même problème ! c'est trés bizarre, j'ai utilisé utf8_decode() pour le critère de ma requête et utf8_encode() pour réafficher correctement le résultat !

    il y a t il une explication à ce problème ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    [RÉSOLU]

    une modification peut être fait dans prototype.js mais à vos risque et péril,
    modifier toutes les fonctions encodeURIComponent par des escape et tout les decodeURIcomponent par des unescape

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [script.aculo.us] Accents et Ajax.updater
    Par Skualys dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 21/07/2009, 17h01
  2. pb accent et encodage avec ajax
    Par penguin50 dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 20/02/2008, 14h39
  3. fonction native d'encodage utf8 ?
    Par Bruno2000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/05/2006, 17h27
  4. [AJAX] Ajax et les accents
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/12/2005, 20h09
  5. [ENCODAGE][JAVA]Afficher correctement des accents
    Par kornelius dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 17/02/2004, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo