Problème de décodage des caractères après lecture d'un cookie (asp.net)

Voici un problème que j'ai mis quelques temps à résoudre :



J'enregistre une donnée dans un cookie à l'aide de l'instruction javascript suivante :





function createCookie(name, value, days) {

    if (days) {

        var date = new Date();

        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));

        var expires = "; expires=" + date.toGMTString();

    }

    else var expires = "";

    document.cookie = name + "=" + value + expires + "; path=/";

}






Je lis cette donnée depuis asp.net côté server par l'instruction suivante :



Request.Cookies[name].Value;




Et voilà que les accents et autres caractères français sont mal décodés.



J'ai donc ajouté cette fonction :





private string Decoder(string valeur)

{

        byte[] temp;

        temp = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(valeur);

        temp = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("UTF-8"), System.Text.Encoding.GetEncoding("ISO-8859-1"), temp);

        return System.Text.Encoding.UTF8.GetString(temp);

}




Ce qui transforme mon instruction de lecture asp.net en :



Decoder(Request.Cookies[name].Value);




Et là ça marche même avec un serveur anglais.



Commentaires

Posts les plus consultés de ce blog

Scénario d'une gestion durable de l'humanité imaginée par un informaticien

Mémoire saturée : comment faire de la place ?

La technologie ARNm