C# HttpWebRequest Stream till utf8 string

Permalänk

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>
...

Permalänk
Medlem

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.

Visa signatur

Kom-pa-TI-bilitet

Permalänk

Okey, jag testar det

Tackar