Laden...

[gelöst] streamwriter schreibt drei bytes vor den text

Erstellt von Floste vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.093 Views
Floste Themenstarter:in
1.130 Beiträge seit 2007
vor 13 Jahren
[gelöst] streamwriter schreibt drei bytes vor den text

Folgende zwei zeilen:


            StreamWriter writer = new StreamWriter(body, Encoding.UTF8);
            writer.Flush();

Schreiben bei mir folgende werte in den stream "body":
EF BB BF oder 

Da ich die da nun überhaupt nicht gebrauchen kann, habe ich mir mit einem

body.Position=0;

beholfen. Allerdings finde ich es seltsam, das überhaupt etwas geschrieben wird, bevor ich die daten gebe. Gibt es einen einfachen weg, das abzustellen?

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

925 Beiträge seit 2004
vor 13 Jahren

Das ist die Byte Order Mark von UTF8. Das liegt also an dem von dir gewählten Encoding. Siehe http://de.wikipedia.org/wiki/Byte_Order_Mark

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

die BOM wird idR. auch von jedem Programm erkannt was mit UTF umgehen kann, von daher stören die nicht. Wenn du statt dem UTF8 Property der Encoding Klasse zu benutzen, manuell ein UTF8Encoding Objekt erstellst, kannst du auch im Konstruktor angeben ob die BOM geschrieben werden soll.

Baka wa shinanakya naoranai.

Mein XING Profil.

Floste Themenstarter:in
1.130 Beiträge seit 2007
vor 13 Jahren

die BOM wird idR. auch von jedem Programm erkannt was mit UTF umgehen kann

aber nicht vom apache http server im post-body

manuell ein UTF8Encoding Objekt erstellst, kannst du auch im Konstruktor angeben ob die BOM geschrieben werden soll.

Nach soetwas habe ich gesucht. 👍

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!