Avatar billede anri Novice
05. februar 2007 - 20:29 Der er 6 kommentarer og
1 løsning

Læse html side med danske chars

Jeg har lavet en .aspx side der henter henter en .HTML side ind i en streng, og viser alt indenfor <body> tag'en.  Det virker helt fint, bortset fra de danske karakterer..

Min kode ser således ud, og jeg kan se at det allerede går galt ved læsning af teksten.
Jeg tror det er noget med encoding..  Nogen forslag til hvad jeg bør gøre?


string fileName = Server.MapPath(Request.QueryString["URL"]);

FileInfo fi = new FileInfo(fileName);

string output = "Siden blev ikke fundet.";
if (fi.Exists)
{
  string fileContent = fi.OpenText().ReadToEnd();

  int startIDX = fileContent.IndexOf("<body", StringComparison.CurrentCultureIgnoreCase);
  startIDX = fileContent.IndexOf(">", startIDX, StringComparison.CurrentCultureIgnoreCase) +1;
  int length = fileContent.IndexOf("</body>",StringComparison.CurrentCultureIgnoreCase) - startIDX;
  output = fileContent.Substring(startIDX, length);
}

Literal ltrl = new Literal();
ltrl.Text = output;

PlaceHolder1.Controls.Add(ltrl);
Avatar billede jokkejensen Novice
05. februar 2007 - 21:25 #1
Jeg er ikke den store serverscript haj..

Men med openText får du vel resultatet i utf8...

Brug i stedet en streamreader, og et webrequest, streamreaderen skulle automatisk finde encoding, men ellers kan du manuelt tildele den det..

http://dotnetforum.dk/forums/thread/73279.aspx
Avatar billede jokkejensen Novice
05. februar 2007 - 21:26 #2
lige gyldigt hvad, vil en fileinfo aldrig være det mest optimale valg til at lave et webrequest..

/JJ
Avatar billede 2c Nybegynder
05. februar 2007 - 21:30 #3
Jeg har lavet noget kode til at læse XML filer fra web. Der starter jeg sådan her:
StreamReader myStream = new StreamReader(webRequest.GetResponse().GetResponseStream(), System.Text.Encoding.UTF8);

Hvor man så kan lave encoding om så det paser til det man har lyst til.
Avatar billede 2c Nybegynder
05. februar 2007 - 21:31 #4
manglede lige det her inden den sidste linie kode:
WebRequest webRequest =  WebRequest.Create(url);
Avatar billede jokkejensen Novice
06. februar 2007 - 08:44 #5
Du skriver selv System.Text.Encoding.UTF8 ... prøv at slettet UTF8 og trykke alt+space eller hvad der nu tricker intellicense i vs.net.

UTF8 burde kunne tillade æøå men det kræver at dit xml ark er gemt i samme.

Hvad sker der hvis du helt fjerner encoding fra new StreamReader().

/JJ
Avatar billede jokkejensen Novice
06. februar 2007 - 15:39 #6
how.. jeg trode 2c var spørgeren...

beklager den misvisende kommentar :)
Avatar billede anri Novice
07. februar 2007 - 11:30 #7
Tak for jeres svar..
Jag løste det med følgende komando ;
string fileContent = File.ReadAllText(fi.FullName, Encoding.Default);

Her brgte jeg sådan set ingen streams, så jeg må nok nuppe de points selv, man tisind tak for jeres input..
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