Dans le cadre d'un développement j'ai eu un petit souci d'encodage des caractères sur des données venant d'une base de données MySQL, récupérées dans un Web Service en .net et dont les caractères spéciaux m'arrivaient dans la forme suivante: é.

En base les caractère spéciaux sont dans la norme ISO, et une autre solution existe pour les ré-encoder sans pour autant utiliser une méthode barbare de remplacement, en récupérant la chaine depuis son encodage par défaut puis de la ré-encoder en UTF8 au sein du Framework.

    public string retourneStringEnUTF8(string chaine)
    {
        byte[] l = Encoding.Default.GetBytes(chaine);
        chaine = Encoding.UTF8.GetString(l);
        return chaine;
    }

Et voilà le resultat:

  • avant le mot issu de la chaine était affiché: Création
  • après: Création.