UTF-8 Konvertierung

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    UTF-8 Konvertierung

    Hallo.
    Ich schreibe momentan an einer Klasse zum Auslesen von *.eml - Emaildateien.
    Soweit klappt auch erstmal alles (habe es immer an einer Testmail ausprobiert).
    Doch als ich das dann an anderen Mails getestet habe, fiel mir auf, dass der Betreff, Absender, Empfänger oder sonstige andere Dinge scheinbar im UTF-8 Format formatiert sein können.
    So finde ich zum Beispiel in einer Newslettermail von [Vorsicht: Schleichwerbung] Apple [Schleichwerbung Ende] folgenden Betreff:
    =?UTF-8?Q?Das_iPhone_4_in_Wei=C3=9F_ist_da.?=

    Meine Frage ist nun, wie formatiere ich diesen String im UTF-8 Format jetzt ins Standartformat.
    Ich hab das bis jetzt wie folgt versucht:

    VB.NET-Quellcode

    1. Imports System.Text
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim sourceEncoding As Encoding = Encoding.UTF8
    5. Dim targetEncoding As Encoding = Encoding.Default
    6. Dim bytes() As Byte = sourceEncoding.GetBytes("=?UTF-8?Q?Das_iPhone_4_in_Wei=C3=9F_ist_da.?=")
    7. Dim Ergebnis() As Byte = Encoding.Convert(sourceEncoding, targetEncoding, bytes)
    8. MsgBox(targetEncoding.GetString(Ergebnis))
    9. End Sub
    10. End Class


    Doch irgendwie verändert sich dabei gar nichts.
    Es kommt wieder
    =?UTF-8?Q?Das_iPhone_4_in_Wei=C3=9F_ist_da.?=
    raus.

    Ich hoffe mir kann da jemand helfen :)
    Wäre sehr dankbar :D
    Danke erstmal.
    Aber ich hab jetzt das Problem, dass es in vb 2008 Response nicht gibt.

    VB.NET-Quellcode

    1. Dim Data As String
    2. ' Fill the string variable with some data
    3. Data = "Some string with any chars suitable For windows-1250 charset"
    4. 'Set content-type
    5. Response.ContentType = "text/plain"
    6. 'Set out charset
    7. Response.Charset = "windows-1250"
    8. 'Write string converted To the charset.
    9. Response.BinaryWrite(EncodeString(Data, "windows-1250"))

    Der Name "Response" wurde nicht deklariert.
    Was muss ich jetzt anstatt Response schreiben?