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.
Laisser un commentaire