Encoding des caractères vers UTF (exemple é)
Par Draggi le mercredi, avril 7 2010, 15:06 - ASP.NET / C# - Lien permanent
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
et si tu mets un "²" dans ta chaine de départ ? et ouai
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.