Aller au contenu | Aller au menu | Aller à la recherche

Encoding des caractères vers UTF (exemple é)



Petit soucis du jour le ré-encodage d'une chaine.

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.


Commentaires

1. Le vendredi, juin 4 2010, 09:57 par remi

et si tu mets un "²" dans ta chaine de départ ? et ouai

2. Le vendredi, juin 4 2010, 10:38 par Draggi

Oui, mais le problème c'est que la chaine de départ n'est pas formaté correctement, la on part d'un encodage des caractères spéciaux (é è ê ...) sous UNIX.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet