Encoding

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von reustli.

    Hallo Zusammen
    Das leidige Thema mit der Codierung ... bereitet mir wieder einmal Kopfzerbrechen.
    Ich übergebe eine URL und bekomme als Resultat ein XML zurück das ich in eine Listbox auslese, funktioniert alles bis auf die Formatierung bei den Umlauten.
    Habt ihr eine Idee wie ich das lösen kann?


    Hier mein Code:

    Quellcode

    1. Public Structure Openth
    2. Public wort As String
    3. End Structure


    Quellcode

    1. Private Sub DownloadXML()
    2. Try
    3. Dim webClient As Net.WebClient = New Net.WebClient()
    4. AddHandler webClient.DownloadStringCompleted, AddressOf webClient_DownloadStringCompleted
    5. webClient.DownloadStringAsync(New Uri("http://www.openthesaurus.de/synonyme/search?q=" & TextBox1.Text & "&format=text/xml"))
    6. Catch ex As Exception
    7. MessageBox.Show("Fehler.")
    8. End Try
    9. End Sub


    Quellcode

    1. Private Sub webClient_DownloadStringCompleted(sender As Object, e As DownloadStringCompletedEventArgs)
    2. ListBox1.Items.Clear()
    3. Try
    4. Dim xelement As XElement = xelement.Parse(e.Result, LoadOptions.None)
    5. Dim xECBs = From ECB In xelement.Descendants("term") _
    6. Where ECB.Attribute("term") IsNot Nothing _
    7. Select New Openth With { _
    8. .wort = ECB.Attribute("term").Value}
    9. For Each Line In xECBs
    10. ListBox1.Items.Add(Line.wort)
    11. Next
    12. Catch ex As Exception
    13. MessageBox.Show("Fehler.")
    14. End Try
    15. End Sub
    Dann wird wohl im eingelesenen XML das Encoding nicht korrekt angegeben. Da hilft dann meist nur raten. Evtl. kannst du mit den Klassen aus System.Text.Encoding was anfangen.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    reustli schrieb:

    "&format=text/xml"))
    Gibt es da noch Formatierungsoptionen (z.B. UTF8 oder so)?
    Wenn ich mir diese Datei mit dem FF loade, sieht sie vernünftig aus.
    Allerdings schmeißt der Virenscanner das Programm raus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habs gefunden ...
    Hier die Encoding Eigenschaft (zweite Zeile) löst das Problem ...

    Quellcode

    1. Dim webClient As Net.WebClient = New Net.WebClient()
    2. webClient.Encoding = System.Text.Encoding.UTF8
    3. AddHandler webClient.DownloadStringCompleted, AddressOf webClient_DownloadStringCompleted
    4. webClient.DownloadStringAsync(New Uri("http://www.openthesaurus.de/synonyme/search?q=" & TextBox1.Text & "&format=text/xml"))


    Gruss