2017-04-26 9 views
0

Ich habe diesen einfachen Code:C# Schreiben in der Datei UTF8 mit

using (var sw = new StreamWriter(path + kat + "/" + namec, true, Encoding.UTF8)) 
{ 
    sw.WriteLine(namex + "," + address + "," + web + "," + email + "," + phone + "," + linksx + "," + transport); 
} 

I Selen Web-Treiber unter Verwendung von Daten aus Dänemark Website herunterladen, zB Link: http://www.visitdenmark.dk/da/danmark/danhostel-roenne-gdk614558

Dann speichere ich es in CSV-Datei , aber ich habe immer noch Zeichen wie dieses Ă statt dieses ø. Wie Sie sehen können, setze ich Encoding.UTF8 Auch es wird interessanter, wenn ich bool append auf false setze, dann ist alles normal, aber es hilft mir nicht, weil ich diese Datei mit neuen Daten anhängen muss. Wie kann ich das beheben?

Antwort

1

Sie sollten Windows-1252 (oder Encoding.GetEncoding(1252)) anstelle von UTF-8 für Dänisch verwenden.


EDIT:

Es wurde ein fehlendes BOM Problem verursacht Excel die Datei nicht richtig zu lesen.

// notice we are creating a new file here 
using (var writer = new StreamWriter(path, false, Encoding.UTF8)) 
{ 
    // Add a BOM in the beginning of the file 
    var preamble = Encoding.UTF8.GetPreamble(); 
    writer.BaseStream.Write(preamble, 0, preamble.Length); 

    // write data... 
    writer.WriteLine(string.Join(",", "Danhostel Rønne", "Arsenalvej 12 3700 Rønne")); 
} 

// when you write the same file again, you don't need to append the BOM again 
using (var writer = new StreamWriter(path, true, Encoding.UTF8)) 
{ 
    // write more data... 
    writer.WriteLine(string.Join(",", "Danhostel Rønne", "Arsenalvej 12 3700 Rønne")); 
} 
+0

Noch gleich http://prntscr.com/f16v7b wenn ich 'MessageBox.Show (Namex);' vor in CSV-Datei einfügen es mir normale Zeichen zeigt, um vor dem Einsetzen alles normal ist. Irgendeine Ahnung ? – mdieod

+0

@mdieod könnten Sie testen, ob dieser Code das richtige Ergebnis generiert? https://pastebin.com/L947k1Nw – Xiaoy312

+0

Ich führe einfach Ihren Code und ich bekomme das gleiche Ergebnis http://prntscr.com/f176iv – mdieod