Avatar billede Slettet bruger
22. februar 2006 - 13:54 Der er 6 kommentarer og
1 løsning

Problemer med streamwriter og ø

Hej

Jeg har lavet en aps.net side som generere noget html-kode. Når jeg åbner den genrerede html kode i wordpad ser det hele fint ud. Ø er som det skal være og det hele.

Men når jeg viser html-koden i en browser, bliver ø erstattet med et underlige tegn som liger lidt et Å.

Hvis jeg blot retter et af ø'erne ved at åbne htmlkode med wordpad og erstatter ø med ø, bliver alle ø'erne rigtige i browseren.

Er der nogen som ved hvad der går galt?

Her er min kode - som det måske kan ses, er jeg ny i faget:

<%@ Import Namespace="System.IO"  %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">

    Sub Page_Load()
       
        Dim DbConn As OleDbConnection
        Dim SqlCmd As OleDbCommand
        Dim DataReader As OleDbDataReader
       
        Dim sFornavn, sEfternavn, sInitialer, sKortValg, sTlf, sMobil, sMail As String
             
        Dim oStreamWriter = File.CreateText(MapPath("desktop-test.htm")) ', True, Encoding.GetEncoding(850))
       
        DbConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\inetpub\wwwroot\database\calendar.mdb")
        SqlCmd = New OleDbCommand("Select Fornavn, Efternavn, Initialer, KortValg, Tlf, mobil, mail FROM Personale WHERE status = True ORDER BY Fornavn", DbConn)
        DbConn.Open()
        DataReader = SqlCmd.ExecuteReader()
       
       
        oStreamWriter.WriteLine("<html>")
        oStreamWriter.WriteLine("<head>")
        oStreamWriter.WriteLine("<meta http-equiv='Content-Language' content='da'>")
        oStreamWriter.WriteLine("<meta http-equiv='Content-Type' content='text/html; charset=windows-850'>")
        oStreamWriter.WriteLine("</head>")
       
        oStreamWriter.WriteLine("<a href='http://Intranet'><img alt='Länk till startsida' src='logo_ragnsells_sidhuvud.gif' border='0' width='92' height='33'></a>")
        oStreamWriter.WriteLine("<hr color='#008080' size='15'>")
       
        oStreamWriter.WriteLine("<table border='0' cellpadding='0' cellspacing='0' height='540'>")
        oStreamWriter.WriteLine("<tr height='17' font-family: Arial'><td width='125'></td><td style='height: 17;'><b>Navn</b></td><td><b>Initialer</b></td><td><b>Kort valg</b></td><td><b>Direkte</b></td><td><b>Mobil</b></td><td><b>Mail</b></td></tr>")
       
        While DataReader.Read()
            If Not DataReader(0) Is DBNull.Value Then
                sFornavn = DataReader(0)
            End If
            If Not DataReader(1) Is DBNull.Value Then
                sEfternavn = DataReader(1)
            Else
                sEfternavn = ""
            End If
            If Not DataReader(2) Is DBNull.Value Then
                sInitialer = DataReader(2)
            Else
                sInitialer = ""
            End If
            If Not DataReader(3) Is DBNull.Value Then
                sKortValg = DataReader(3)
            Else
                sKortValg = ""
            End If
            If Not DataReader(4) Is DBNull.Value Then
                sTlf = DataReader(4)
            Else
                sTlf = ""
            End If
            If Not DataReader(5) Is DBNull.Value Then
                sMobil = DataReader(5)
            Else
                sMobil = ""
            End If
            If Not DataReader(6) Is DBNull.Value Then
                sMail = DataReader(6)
            Else
                sMail = ""
            End If
            oStreamWriter.WriteLine("<tr height='17' style=' font-family: Arial; font-size: 10.0pt; '><td width='125pt'></td><td style='height: 17; width='135pt' style=' font-family: Arial; font-size: 10.0pt;'>" & sFornavn & " " & sEfternavn & "</td><td width='60pt'>" & sInitialer & "</td><td width='80pt'>" & sKortValg & "</td><td width='80pt'>" & sTlf & "</td><td width='80pt'>" & sMobil & "</td><td><a href=mailto:'" & sMail & "'>" & sMail & "</a></td></tr>")
        End While
        oStreamWriter.WriteLine("</table>")
        oStreamWriter.WriteLine("</html>")

        oStreamWriter.Close()
        DbConn.Close()
    End Sub
   
</script>

<html>
<head><title>Test</title></head>

<body>
<form runat=server>
Opdater personalelisten på skrivebordet
<br />
<asp:TextBox
    ID="TxtInput"
    runat="server" />
   

</form>
   
</body>
</html>
Avatar billede mikkel_sommer Nybegynder
22. februar 2006 - 21:53 #1
Du kan evt. prøve med

Encoding.Default

i stedet for

Encoding.GetEncoding(850)
Avatar billede Slettet bruger
23. februar 2006 - 07:39 #2
Linien:
', True, Encoding.GetEncoding(850))
Indgår slet ikke, den er taget ud med '.
Avatar billede mikkel_sommer Nybegynder
23. februar 2006 - 10:19 #3
Måske du kunne bruge

Server.HtmlEncode(dintekst)

på dine writelines....
Avatar billede thrytter Nybegynder
23. februar 2006 - 10:25 #4
Prøv at udskifte
oStreamWriter.WriteLine("<meta http-equiv='Content-Type' content='text/html; charset=windows-850'>")

med

oStreamWriter.WriteLine("<meta http-equiv='Content-Type' content='text/html; charset=windows-1252>")

eller

oStreamWriter.WriteLine("<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>")

Du mangler for øvrigt <body> og </body> i din tekstfil.
Avatar billede Slettet bruger
23. februar 2006 - 12:21 #5
Hej Mikkel_sommer og thrytter

- der er desværre ingen af jeres forslag der virker :-(
Avatar billede Slettet bruger
27. februar 2006 - 10:07 #6
Er der ikke nogen, der kan hjælpe med at gennemskue hvad der går galt?
Avatar billede Slettet bruger
07. februar 2011 - 09:22 #7
Lukker.
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