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