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

JavaScript Discussion :

Encodage du lien


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par d�faut Encodage du lien
    Bonjour tout le monde,

    Je suis dans une application mobile et mon probl�me est que je n'arrive pas a r�cup�rer correctement le body et subject d'un template SMS. C'est li� � l'encodage.

    voila le code de la fonction JS :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function createSMS(){
    	var phoneNumber = document.getElementById("SMS").innerHTML;
            var subject = encodeURIComponent(document.getElementById("initSubject").innerHTML);
            var body = subject+'\n'+encodeURIComponent(document.getElementById("initBody").innerHTML);
            window.location ="sms:"+phoneNumber+"&body=+body;
    }
    Le "SMS" c'est num�ro de t�l�phone du contact cot� controleur.

    Si je suis choisi un template qui contient "Hello" comme subject et "Bienvenu sur notre site" comme body ==> j'ai le r�sultat suivant dans ma section SMS de mon t�l�phone Hello,Bonjour%20sur%20notre%20site.

    Je me dis que je dois faire un fonction Regex comme celle-ci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function encodeISO8859 (str) {
        var rstr="";
        for(var i=0; i<str.length; i++) {
            var c = str.charCodeAt(i);
            if(c>191&&c<=255&&!(c==215||c==247)){
                console.log(c);
                rstr += "&#"+c+";";
           } else {
               rstr += str.charAt(i);
           }
        }
        return rstr;
    }
    est changer la fonction CreatSMS par cella-la :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function createSMS(){
        logTask(document.getElementById("initSubject").innerHTML);
        var phoneNumber = document.getElementById("SMS").innerHTML;
        var subject = encodeURIComponent(encodeISO8859(document.getElementById("initSubject").innerHTML));
        var body = subject+'\n'+encodeISO8859(encodeURIComponent(document.getElementById("initBody").innerHTML));
        window.location ="sms:"+phoneNumber+"&body=+body";
    }
    Merci d'avance � tous et � toutes

  2. #2
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2014
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2014
    Messages : 16
    Par d�faut
    Si je comprend bien tu veux d�-URL-iser une chaine de caractere que tu r�cup�re ? Pour simplifier ton code tu n'aurai pas int�ret � utiliser decodeURI ? pour faire l'operation inverse de encodeUri ?

  3. #3
    Candidat au Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par d�faut
    Salut 4urelien.jo,

    Merci pour ta r�ponse.Au fait, j'ai suivi ce que tu as dis;

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function createSMS(){
     	    logTask(document.getElementById("initSubject").innerHTML);
     		var phoneNumber = document.getElementById("SMS").innerHTML;
            var subject = document.getElementById("initSubject").innerHTML;
            var body = encodeURIComponent(document.getElementById("initBody").innerHTML);
     
            window.location ="sms:"+phoneNumber+"?body="+decodeURIComponent(body);
        }
    En testant avec un body qui contient les caract�res sp�ciaux suivants : - * % : ; , . ( ) [ ] ! _

    Comme r�sultat, tout va bien sauf les carract�res : % =>%25 , %=>%25 , :=> %3A, %3B=>;
    %5D=> ] , %5B=>[ , %20=> espace vide

    je ne sais pas comment impl�menter, replace(" ", "%20") , ... en une seule fonction tout en conservant le DecodeURIComponent. Bon je crois que c'est �a la r�ponse

  4. #4
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2014
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2014
    Messages : 16
    Par d�faut
    J'avais cr�� une fonction pour faire ca pour les espaces mais je ne la retrouve plus, j'etais parti d'un bout de code de stackoverflow

    La solution bete et mechante est de prendre ton body et de lui faire subir tous les remplacements a la suite... Il doit y avoir plus malin mais la tout de suite je ne vois pas

    Si tu trouves une meilleure solution partage

  5. #5
    Candidat au Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2013
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par d�faut
    Moi je suis parti sur ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function encodeAnotherValueChars (body) {
        return decodeURIComponent(body).replace(/\%/g, '%25');
     
    }
    est je l'appelle comme ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     window.location ="sms:"+phoneNumber+"?body="+encodeAnotherValueChars(body);
    Mais ca ne marche pas :

  6. #6
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2014
    Messages
    16
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 30
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2014
    Messages : 16
    Par d�faut
    Tiens deja je sais pas si tu connais mais ce site est vraiment bien des qu'on a besoin de regex : http://www.regexr.com/

    Ensuite a quel niveau ca ne fonctionne pas ? Au niveau de la regle d'exception ou au niveau du remplacement ? Si tu as un message d'erreur ou un exemple de ce que devrait ecrire ton script poste le

Discussions similaires

  1. URI Encoding - encodage automatique des liens
    Par raphpell dans le forum Apache
    R�ponses: 16
    Dernier message: 07/05/2008, 15h48
  2. [FLASH 5] Comment cr�er un lien hypertexte
    Par ajit dans le forum Flash
    R�ponses: 4
    Dernier message: 30/03/2006, 12h26
  3. [Kylix] Cr�ation d'un fichier lien
    Par DrQ dans le forum EDI
    R�ponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Tutoriels et liens pour le Borland Database Engine
    Par Community Management dans le forum Paradox
    R�ponses: 0
    Dernier message: 25/03/2002, 10h23

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