| 

.NET C# Java Javascript Exception

3
Ich lade ein Unicode-File (Textzeilen) von einem FTP herunter mit WebClient/DownloadFile.
Nach dem Download ist die Datei nach der ersten Zeile defekt.
Dim w As New WebClient
w.Credentials = New NetworkCredential(username, password)
w.DownloadFile(combine(uri, source), dest)

Vor dem Download sieht es Hex so aus: ...69 00 6C 00 0D 00 0A 00....
nach dem Download so: ...69 00 6C 00 00 0D 0A 00....

Also 0D 00 wird zu 00 0D womit der Rest des Textes nicht mehr lesebar ist.

Was mache ich falsch?

Thomas
07.01.2015
Tosch 216 5
5 Antworten
0
Wahrscheinlich müssen Sie die Codierung im WebClient setzen:

Dim w As New WebClient
w.Credentials = New NetworkCredential(username, password)
w.Encoding = System.Text.Encoding.UTF8;
w.DownloadFile(combine(uri, source), dest)


Dann sollte der Download auch problemlos funktionieren. Hoffe es hilft...
07.01.2015
edvservice 1,3k 6
0
Danke für den Tip, hat aber leider nichts gebracht.
07.01.2015
Tosch 216 5
0
Als Alternative könnte die Methode DownloadData() verwendet werden und die Daten dann in ein File geschrieben werden.

Bitte Anmerkungen als Kommentar hinzufügen und nicht als neue Antwort.
07.01.2015
Roland Bär 330 6
0
Die Antwort von Herrn Bär habe ich erst zu spät gesehen.
Dann vielleicht besser die Methode zum Download eines Byte-Arrays verwenden. Hier sollte die Kodierung der Daten egal sein.

Dim w As New WebClient
Dim Databuffer As Byte()
w.Credentials = New NetworkCredential(username, password)
Databuffer = w.DownloadData(combine(uri, source))
' Daten verarbeiten, z.B. als ASCII-String
' Dim download As String = Encoding.ASCII.GetString(DataBuffer)


Sollte die Datei sehr groß sein, dann evt. die Async-Methode verwenden.
07.01.2015
edvservice 1,3k 6
0
Danke für die Hilfe an alle.

Das Problem lag daran, dass beim Updload (mit Filezilla) die Datei schon beschädigt wurde. Habe sie dann mit Explorer hochgeladen und dann konnte ich sie auch korrekt herunterladen.

Thomas
07.01.2015
Tosch 216 5
Hallo Tosch,
bitte solche "Anmerkungen" nicht als eigene Antwort posten, sondern als "Kommentar". Wenn für einzelne Antworten Stimmen abgegeben werden passt die Anzeige Reihenfolge nicht mehr und man kann den Zusammenhang nur noch mühsam herstellen.
Xantiva 07.01.2015

Stelle deine .net-Frage jetzt!