Avatar billede mr-kill Nybegynder
09. marts 2008 - 15:43 Der er 9 kommentarer og
1 løsning

html encoding problem

Jeg henter noget html fra en web side på denne måde
       
            string res = "";

            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(s);
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream stm = resp.GetResponseStream();
                int c;
                while ((c = stm.ReadByte()) >= 0)
                    res += (char)c;

                stm.Close();
                resp.Close();

                return res;
            }
            catch { }

            return res;

Mit problem er at der kommer nogle underlige tegn med f.eks. "..

Jeg vil gerne have de rigtig tegn æ ø å osv. hvordan gør jeg det?
Avatar billede arne_v Ekspert
09. marts 2008 - 15:51 #1
Prøv:

HttpUtility.HtmlDecode

men hvis den ikke konverterer de HTML entities du bruger, så bliver du nok nødt til selv
at kode noget.
Avatar billede thesurfer Nybegynder
09. marts 2008 - 15:55 #2
Du bør omskrive din kode til f.eks.:

string res = "";
HttpWebRequest req = null;
HttpWebResponse resp = null;
Stream stm = null;

try
{
    req = (HttpWebRequest)WebRequest.Create(s);
    resp = (HttpWebResponse)req.GetResponse();
    stm = resp.GetResponseStream();
    int c;
    while ((c = stm.ReadByte()) >= 0)
        res += (char)c;
}
catch ()
{
    // evt besked hvis noget går galt
}
finally
{
    // Frigør instanserne, hvis de ikke er null:
    if (req != null) req.Close();
    if (resp != null) resp.Close();
    if (stm != null) stm.Close();
}
return res;

og så er det nok bedre (performans) at bruge StringBuilder end string til formålet..
Avatar billede mr-kill Nybegynder
09. marts 2008 - 16:04 #3
^^enig i at det kan laves bedre og det skal jeg nok gøre.. vil bare gerne have det hele til at virke først ;)

arne_v >> hvorfor kan jeg ikke finde "HttpUtility" nogen steder.. den burde vel ligge i "System.Net" ?
Avatar billede arne_v Ekspert
09. marts 2008 - 16:17 #4
nej - System.Web
Avatar billede mr-kill Nybegynder
09. marts 2008 - 16:27 #5
HtmlDecode virkede perfekt.. smid et svar og point du skal få, arne_v
Avatar billede arne_v Ekspert
09. marts 2008 - 16:44 #6
svar
Avatar billede arne_v Ekspert
09. marts 2008 - 16:45 #7
Jeg tror at den nemmeste måde at læse det hele på er at wrappe ResponseStream i en
StreamReader og bruge ReadToEnd metoden.
Avatar billede mr-kill Nybegynder
09. marts 2008 - 18:21 #8
Nemmeste eller hurtigeste?

for har lavet det om til StringBuilder nu og det kører meget hurtigt.
Avatar billede arne_v Ekspert
09. marts 2008 - 19:11 #9
Begge vil jeg tro.
Avatar billede mr-kill Nybegynder
09. marts 2008 - 19:59 #10
Okey kigger på det.. tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester