Entwickler-Ecke
IO, XML und Registry - Problem mit Zeichenkodierung beim File Transfer
yndaso - So 28.03.10 16:28
Titel: Problem mit Zeichenkodierung beim File Transfer
Hallo,
ich habe auf einem ftp Laufwerk eine xml Datei liegen. Diese übertrage ich auf
meinen PC und gebe den Inhalt anschließend in meiner Anwendung aus.
Ich habe aber nun gemerkt. Das die Datei auf dem Netzlaufwerk mit der Kopie nicht
übereinstimmt, da die Sonderzeichen ("Ü",...) durch merkwürdige Zeichen ersetzt sind.
So nun wird es vermutlich um ein Codierungsproblem handeln.
Wie kann ich überhaupt feststellen, welche Zeichenkodierung die xml Datei auf dem
Netzlaufwerk hat?
Hier mal mein Code mit dem ich die Datei übertrage:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| ftpAddress = Url.ToString(); file = m_fileNames[iCounter].ToString(); newFileData = request.DownloadData(ftpAddress); fileString = System.Text.Encoding.UTF8.GetString(newFileData); fileString.Replace('\r', '\n'); StreamWriter sw = new StreamWriter(file, false, Encoding.UTF8); sw.Write(fileString); sw.Close(); |
Oder muss ich was an meinem Code ändern?
Vorab Danke
norman2306 - So 28.03.10 16:31
Du gibtst doch die Codierung mit UTF8 vor...
yndaso - So 28.03.10 16:35
norman2306 hat folgendes geschrieben : |
Du gibtst doch die Codierung mit UTF8 vor... |
Was sollte ich denn stattdessen vorgeben? Damit Sonderzeichen auch Sonderzeichen bleiben?
Kha - So 28.03.10 16:56
yndaso hat folgendes geschrieben : |
Wie kann ich überhaupt feststellen, welche Zeichenkodierung die xml Datei auf dem
Netzlaufwerk hat? |
Du öffnest sie einmal von Hand ;) ? Notepad++ zeigt dann die Enkodierung z.B. unter "Format" an, VS unter "File -> Advanced Save Options" - falls sie richtig geraten haben. Mit dem richtigen BOM schafft das auch der StreamReader, ANSI wird er allerdings nie automatisch erkennen.
norman2306 - So 28.03.10 17:03
Die Frage ist nicht ganz korrekt. Du kannst vorgeben was du möchtest. UTF8 enthält Sonderzeichencodierung. Hast du die mal gecheckt, was in fileString drin steht, bevor du schreibst?
yndaso - So 28.03.10 17:06
norman2306 hat folgendes geschrieben : |
Die Frage ist nicht ganz korrekt. Du kannst vorgeben was du möchtest. UTF8 enthält Sonderzeichencodierung. Hast du die mal gecheckt, was in fileString drin steht, bevor du schreibst? |
In FileString steht vor dem Schreiben statt dem ü ein anderes Zeichen (Viereck?)
norman2306 - So 28.03.10 17:09
ok, dann würde ich mal sagen, du machst ein falsches Encoding...
C#-Quelltext
1:
| fileString = System.Text.Encoding.UTF8.GetString(newFileData); |
macht es click?
JüTho - So 28.03.10 18:22
Dann hast du doch die Lösung:
Die ganze Liste steht übrigens im Beispiel unter
Encoding.GetEncodings.
Jürgen
yndaso - So 28.03.10 18:32
Danke!
Klappt nun...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!