C# HttpWebRequest Stream till utf8 string

Trädvy Permalänk
Medlem
Plats
Borlange
Registrerad
Okt 2007

C# HttpWebRequest Stream till utf8 string

Tjenare,

Jag håller på med ett projekt där jag laddar ner filer från internet. Filerna kan vara på alla möjliga språk så jag försöker få till en utf8 kodning på allting.

static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://eforum.idg.se/viewmsg.asp?entriesid=797601");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream,Encoding.UTF8);
string test= readStream.ReadToEnd();
File.WriteAllText(@D:\test.txt, test);
response.Close();
readStream.Close();
}

detta resluterar i att variabeln TEST inte få Å Ä Ö. Byter jag ut Encoding.UTF8 mot Encoding.ASCII så får jag med ö å ä, detta fungerar u just det här fallet men ska jag plocka ner polska tecken t.ex. så kommer det tolkas fel.

Någon som kan peka mig i rätt riktning för hur jag ska lösa det här?

Nedan ska vara :
...
<TITLE>Eforum - kan inte skriva Å Ä Ö;</TITLE>
...

men resulterar i (TEST):
...
<TITLE>Eforum - kan inte skriva � � �</TITLE>
...

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

Jag gissar att detta beror på att du säger åt strömmen att den ska vara UTF-8, men själva innehållet på hemsidan är i t ex ISO-8859-1. Om du kollar i response-headern så står encodingen där (t ex "text/html; charset=UTF-8"). Använd den, eller konvertera mellan whatever och UTF-8 på något vis.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Borlange
Registrerad
Okt 2007

Okey, jag testar det

Tackar