web-dev-qa-db-fra.com

comment lire des caractères spéciaux comme é, â et d'autres en C #

Je ne peux pas lire ces caractères spéciaux que j'ai essayés comme ça

1ère voie #

string xmlFile = File.ReadAllText(fileName);

2ème voie #

FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();

Mais les deux déclarations ne comprennent pas ces caractères spéciaux. Comment devrais-je lire?

MISE À JOUR ###

J'essaye aussi tous les encodages avec

string xmlFile = File.ReadAllText(fileName, Encoding. );

mais je ne comprends toujours pas ces caractères spéciaux.

27
kevin

Il n'y a pas de "caractère spécial". Ce sont probablement des caractères ascii étendus de l'ensemble latin1 (iso-8859-1). Vous pouvez les lire en fournissant un encodage explicite au lecteur de flux (sinon il supposera UTF8)

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();
72
Ilia G
StreamReader sr = new StreamReader(stream, Encoding.UTF8)
5
Kakashi

Vous devez dire au StreamReader que vous lisez Unicode comme ça

StreamReader sr = new StreamReader(stream, Encoding.Unicode);

Si votre fichier est d'un autre encodage, spécifiez-le comme deuxième paramètre

3
parapura rajkumar