OVH Cloud OVH Cloud

pb d'encodage vers un fichier html

2 réponses
Avatar
gabriel
bonjour,

j'ai une fenetre c# contenant un formulaire qui peut contenir des
caractères accentués.
je stocke le contenu dans un fichier texte au format html.

<CODE>

/// le flux qui va contenir le code html des images
StringBuilder stringBuilderHtmlImages = new StringBuilder();
StringWriter writerToString = new StringWriter(stringBuilderHtmlImages);


// Le flux vers lequel on va sauver le code html généré
StreamWriter sw = new StreamWriter(m.repertoireHtml + nomPage);

using (StreamReader sr = new StreamReader(Constantes.DIR_APP +
Constantes.DIR_TPL + "page.htm", Encoding.GetEncoding("iso-8859-1") ))
{
String line;
while ((line = sr.ReadLine()) != null)
{
modeleHtml += line;
}
}

</CODE>

pb : le caractère "é" se transforme en é dans Firefox et IE (donc j'ai
tout faux :) ).

Ma page web contient bien une déclaration de charset :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"><html><head><title>La galerie du thé
dansant.</title><meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"><link href="stylesSpec.css" rel="stylesheet"
type="text/css"></head><body><h1 align="center">La galerie du thé dansant.

L'encodage du StringWriter est une propriété en lecture seule donc j'ai
loupé quelque chose ....

Merci pour vos lumières !

2 réponses

Avatar
gabriel
C'est bon, j'ai trouvé :
/// Le flux qui va contenir le code html des images
StringBuilder template = new StringBuilder();
// The encoding.
UnicodeEncoding unicode = new UnicodeEncoding();

// Le fichier de destination
string nomFichierDestination = m.repertoireHtml + nomPage;
StreamWriter fichierDestination = new
StreamWriter(nomFichierDestination, false, unicode);

tout simplement :)
Avatar
Ambassadeur Kosh
tu en as un static readonly dans la base fait pour ça ( dans la class
System.Text.Encoding )
et il y'a les autres.

genre

using System.Text ;

XmlWriter writer = new XmlTextWriter(@"c:test.xml",Encoding.Unicode) ;