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

The vaccine is not the right technology

Le vaccin n’est pas la bonne technologie

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