Streamwriter problem med Æ Ø Å

Tags:    .net

Hej. Jeg er gået i stå med et problem som jeg virkelig håber jeg kan få hjælp til herinde.

Min opgave er i sidste ende at oprette en XML-fil via enten streamwriter eller xmlwriter (underordnet for mig). Den her XML fil skal så uploades til validering på et site. Mit problem er imidlertid at jeg får en "Invalid byte 2 of 2-byte UTF-8 sequence." ved upload. jeg har identificeret problemet til at jeg får fejlen ved henholdsvis Æ, Ø og Å, men ikke med æ, ø og å, altså kun de store skandinaviske bogstaver.

Jeg har prøvet et hav af forskellige encodings og write metoder, men stadig uden held.

Her hvor jeg er nået til nu er situationen den at hvis jeg opretter en simpel .txt fil, gennem mit program, kun indeholdende karakteren "Ø" og åbner denne .txt fil i UltraEdit, så er den korresponderende hexadecimale værdi "C3 98" og karakteren værdi er "Ø". Dette burde være henholdsvis "D8" og "Ø".
hvis jeg gennem windows opretter en text-fil indeholdende karakteren "Ø" og åbner denne i UltraEdit, ser det hele rigtigt ud, men hvis jeg åbner den programmerede udgave af text-filen og prøver at slette "Ø"'et, gemme og skrive "Ø"'et igen, så er det forkert igen.

nedenstående er eksempler på hvordan jeg har prøvet at programmere mig ud af problemet:

1)
string[] lines = { "Ø" };
System.IO.File.WriteAllLines(@"C:\1.txt", lines);

2)
FileInfo t = new FileInfo(@"C:\2.txt");
StreamWriter Tex = t.CreateText();
Tex.WriteLine("Ø");
Tex.Write(Tex.NewLine);
Tex.Close();

3)
System.IO.TextWriter writeFile = new StreamWriter("c:\\3.txt",true, Encoding.Unicode);
writeFile.WriteLine("Ø");
writeFile.Flush();
writeFile.Close();
writeFile = null;

4)
using (StreamWriter writer = new StreamWriter("c:\\4.txt"))
{
writer.Write("Ø");
}

Det skal siges at jeg har prøvet ASCII, Unicode, UTF8, UTF7, UTF32 og Default uden held.



t