Hvordan slipper jeg for at StreamWriter indsætter FF FE i min fil
Hej med jer...Jeg har et program som genererer en XML string som jeg skal gemmer i en fil. Filen skal bruges i en Unix miljø, men når jeg prøver at loade XML-filen giver unix programmet en fejlmeddelelse fordi der er noget forkert i rod elementet.
Efter at have gransket sagen nøjere (i en hex editor), viser det sig at min StreamWriter indsætter de to tegn "FF FE" i begyndelsen af min fil. De kan ikke ses når jeg arbejder med filen som almindelig tekstfil i mit windows system, men unix bryder sig altså IKKE om dem.
Jeg tror nok at det er noget Encoding shit der fejler, for de to tegn skulle ifølge MSDN være udtryk for at der var brugt UTF-16 encoding (men mit program beder eksplicit om UTF-8!)
Jeg har prøvet at bruge alle mulige encodings, men intet hjælper tilsyneladende :-(
Her er min string2file metode:
---8<----------
public void StringToFile(string fileName, string contents)
{
StreamWriter sWriter = null;
try
{
FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
sWriter = new StreamWriter(fileStream, Encoding.UTF8);
sWriter.Write(contents);
}
finally
{
if (sWriter != null)
{
sWriter.Close();
}
}
}
---8<----------
Er der nogen af jer der ved hvordan jeg kan slippe af med de to irriterende foranstillede tegn? :-(
(Jeg har været så langt ude at jeg overvejede at åbne filen bagefter som binær fil, og så klippe de to første tegn væk - men det er ikke ønskværdigt, da jeg arbejder med pænt mange filer, og det derfor vil tage ret lang tid :-( )
