Archiv verlassen und diese Seite im Standarddesign anzeigen : C#: Datei in UTF-8 ohne BOM?
Elemental
2008-12-30, 14:23:33
Hallo,
ich versuch gerade verzeifelt in C# eine Datei in UTF-8 ohne BOM zu schreiben, aber ich finde nichts dazu, wie es geht.
Weiss jemand, ob das überhaupt möglich ist?
mfG
Elemental
Monger
2008-12-30, 14:40:07
Hm... hast du den StreamWriter schonmal ausprobiert?
Nach dem was hier (http://msdn.microsoft.com/de-de/library/system.io.streamwriter.aspx) steht, sollte der standardmäßig ohnehin UTF-8 ohne BOM verwenden.
Edit:
"Wenn Sie einen anderen Wert als Encoding.Default angeben, wird die Bytereihenfolgemarkierung (BOM, Byte Order Mark) in die Datei geschrieben." (Link (http://msdn.microsoft.com/de-de/library/f5f5x7kt.aspx))
Elemental
2008-12-30, 14:54:51
Hmm, ja hab ich gerade getestet.
Wenn man den StreamWriter benutzt und kein Encoding angibt, dann kommt UTF-8 ohne BOM raus.
Genauso bei System.IO.File.WriteAllText()
Wenn man da kein Encoding angibt, dann kommt auch UTF-8 ohne BOM raus.
Aber schon merkwürdig. Ich schreibe die Dateien für einen auf Linux basierenden Satelliten-Receiver und der kommt mit den BOM irgendwie nicht klar...
Gnafoo
2008-12-31, 16:36:37
Du kannst ein UTF8Encoding-Objekt erzeugen. Einer der Konstruktoren erlaubt es dir anzugeben, ob du den BOM haben willst.
Ich habe es jetzt nicht getestet, aber das dürfte in etwa so funktionieren:
UTF8Encoding encoding = new UTF8Encoding(false);
using (StreamWriter writer = new StreamWriter("bla.txt", false, encoding))
{
// ...
}
Elemental
2009-01-04, 19:09:24
Danke, "UTF8Encoding encoding = new UTF8Encoding(false)" funktioniert auch wunderbar :)
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.