HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string html = new StreamReader(res.GetResponseStream(),
Encoding.GetEncoding(res.CharacterSet), false).ReadToEnd();
le pb c que le charset des headers n'est pas toujours celui déclaré dans
le html,
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Simon Mourier [SoftFluent]
L'encodage des pages HTML, c'est toujours une histoire compliquée en WEB. L'encoding d'une page HTML envoyé par un flux HTTP se détermine de plusieurs manières
1) le contenu de la page peut l'indiquer dans une balise méta du genrce: <META http-equiv="Content-Type" content="text/html; charset=utf-8" > 2) théoriquement, le contenu du méta HTML ci dessus doit se trouver aussi dans le stream HTTP, dans le header Content-Type 3) on peut aussi le trouver avec header HTTP Content-Encoding 4) enfin, on peut se baser sur le byte order mark (ou BOM), qui peut (ou pas) se trouver au tout début du fichier (cf doc/google sur le sujet)
bref, c'est compliqué. Le plus sûr étant 1). Si 1) n'existe pas, on utilise les headers HTTP. Si les headers HTTP n'existent pas, on peut supposer que le texte est en UTF8.
Simon. www.softfluent.com
"wmn" a écrit dans le message de news: 455df988$0$21144$
bonsoir,
j'ai un pb, je récupère mes pages web avec le bout de code suivant,
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); string html = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding(res.CharacterSet), false).ReadToEnd();
le pb c que le charset des headers n'est pas toujours celui déclaré dans le html,
comment je peux m'en sortir ?
wmn.
L'encodage des pages HTML, c'est toujours une histoire compliquée en WEB.
L'encoding d'une page HTML envoyé par un flux HTTP se détermine de
plusieurs manières
1) le contenu de la page peut l'indiquer dans une balise méta du genrce:
<META http-equiv="Content-Type" content="text/html; charset=utf-8" >
2) théoriquement, le contenu du méta HTML ci dessus doit se trouver aussi
dans le stream HTTP, dans le header Content-Type
3) on peut aussi le trouver avec header HTTP Content-Encoding
4) enfin, on peut se baser sur le byte order mark (ou BOM), qui peut (ou
pas) se trouver au tout début du fichier (cf doc/google sur le sujet)
bref, c'est compliqué. Le plus sûr étant 1). Si 1) n'existe pas, on utilise
les headers HTTP. Si les headers HTTP n'existent pas, on peut supposer que
le texte est en UTF8.
Simon.
www.softfluent.com
"wmn" <wmn@nulpar.org> a écrit dans le message de news:
455df988$0$21144$7a628cd7@news.club-internet.fr...
bonsoir,
j'ai un pb, je récupère mes pages web avec le bout de code suivant,
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string html = new StreamReader(res.GetResponseStream(),
Encoding.GetEncoding(res.CharacterSet), false).ReadToEnd();
le pb c que le charset des headers n'est pas toujours celui déclaré dans
le html,
L'encodage des pages HTML, c'est toujours une histoire compliquée en WEB. L'encoding d'une page HTML envoyé par un flux HTTP se détermine de plusieurs manières
1) le contenu de la page peut l'indiquer dans une balise méta du genrce: <META http-equiv="Content-Type" content="text/html; charset=utf-8" > 2) théoriquement, le contenu du méta HTML ci dessus doit se trouver aussi dans le stream HTTP, dans le header Content-Type 3) on peut aussi le trouver avec header HTTP Content-Encoding 4) enfin, on peut se baser sur le byte order mark (ou BOM), qui peut (ou pas) se trouver au tout début du fichier (cf doc/google sur le sujet)
bref, c'est compliqué. Le plus sûr étant 1). Si 1) n'existe pas, on utilise les headers HTTP. Si les headers HTTP n'existent pas, on peut supposer que le texte est en UTF8.
Simon. www.softfluent.com
"wmn" a écrit dans le message de news: 455df988$0$21144$
bonsoir,
j'ai un pb, je récupère mes pages web avec le bout de code suivant,
HttpWebResponse res = (HttpWebResponse)req.GetResponse(); string html = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding(res.CharacterSet), false).ReadToEnd();
le pb c que le charset des headers n'est pas toujours celui déclaré dans le html,