Hallo Zusammen,
ich habe folgendes Problem beim schreiben von CSV Dateien:
Ich habe ein Programm, welches CSV Dateien einliest, bearbeitet und dann ausgibt. Solange die Input CSV-Datei in UTF8 Codierung codiert ist, ergibt sich bei der Ausgabe (System.Text.Encoding.Default) kein Problem mit den Umlauten (ö, ü, ä...). Wenn jedoch die Input CSV-Datei in ANSI-Codiert ist, so gibt er die Umlaute als komische Sonderzeichen aus. Habe schon verschiedene System.Text.Encoding varianten ausprobiert und bei keinem komme ich auf die richtige Ausgabe der Umlauten.
Kurz zusammengefasst:
Input (UTF8) --verarbeitung--> Output (UTF8) = richtige Umlaute
Input (ANSI) --verarbeitung--> Output (UTF8) = komische Sonderzeichen anstatt Umlaute
Hat Jemand ne Idee, wie man dieses Problem umgehen könnte, da die Input Dateien jeweils mit verschiedener Codierung daherkommen?
Vielen Dank und beste Grüsse
Davencyw
Hier mein Code, falls der von belangen ist.
Spoiler anzeigen
ich habe folgendes Problem beim schreiben von CSV Dateien:
Ich habe ein Programm, welches CSV Dateien einliest, bearbeitet und dann ausgibt. Solange die Input CSV-Datei in UTF8 Codierung codiert ist, ergibt sich bei der Ausgabe (System.Text.Encoding.Default) kein Problem mit den Umlauten (ö, ü, ä...). Wenn jedoch die Input CSV-Datei in ANSI-Codiert ist, so gibt er die Umlaute als komische Sonderzeichen aus. Habe schon verschiedene System.Text.Encoding varianten ausprobiert und bei keinem komme ich auf die richtige Ausgabe der Umlauten.
Kurz zusammengefasst:
Input (UTF8) --verarbeitung--> Output (UTF8) = richtige Umlaute
Input (ANSI) --verarbeitung--> Output (UTF8) = komische Sonderzeichen anstatt Umlaute
Hat Jemand ne Idee, wie man dieses Problem umgehen könnte, da die Input Dateien jeweils mit verschiedener Codierung daherkommen?
Vielen Dank und beste Grüsse
Davencyw
Hier mein Code, falls der von belangen ist.
VB.NET-Quellcode
- Dim Zeile As String
- Dim counter As Integer = 0
- Dim path As String = filePath & fileName
- Using sw As New StreamWriter(path, False, System.Text.Encoding.Default)
- For Each line In writelist
- Zeile = ""
- For n = 0 To spaltenbreite
- If n = spaltenbreite Then
- Zeile &= writelist(counter).item(n)
- Else
- Zeile &= writelist(counter).item(n) & ";"
- End If
- Next
- sw.WriteLine(Zeile)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Davencyw“ ()