Avatar billede montago Praktikant
12. oktober 2007 - 15:53 Der er 7 kommentarer og
1 løsning

Problem med Charset / ContentEncoding med WebRequest

Jeg har et problem med at læse web sider med danske tegn.

HttpWebResponse objWebResponse = (HttpWebResponse)objWebRequest.GetResponse();
gadget.Cookies.Add(objWebResponse.Cookies);
           
Stream objStream = objWebResponse.GetResponseStream();
string test = objWebResponse.CharacterSet;
StreamReader objStreamReader = new StreamReader(objStream);

Hvis jeg læser sidens HTML indhold uden at angive Encoding ser ÆØÅ fine ud på mine egne test-sider... men ÆØÅ på Google.dk bliver til firkanter !!

min test-string bliver på alle sider "ISO-8859-1" (UTF-8 ??)

For at læse Google uden problemer skal jeg bruge Encoding.Default i min streamreader - til alle andre sider : Encoding.UTF-8 eller ingen :(

hvad kan jeg gøre for at ALLE sider læses med rigtig encoding ? -- eller er det fordi jeg viser siden forkert bagefter, at ÆØÅ bliver fucked up ?
Avatar billede montago Praktikant
12. oktober 2007 - 15:55 #1
test-string = objWebResponse.CharacterSet; (ens på alle sider : ISO-8859-1

ÆØÅ bliver til YYY-agtige bogstaver hvis jeg læser med Encoding.Default
Avatar billede kalp Novice
12. oktober 2007 - 15:57 #2
StreamReader objStreamReader = new StreamReader(objStream,Encoding.Default)

prøv at sætte encoding der;)
Avatar billede arne_v Ekspert
12. oktober 2007 - 17:18 #3
Tricket er at vaelge andet argument til constructoren udfra objWebResponse.CharacterSet !
Avatar billede montago Praktikant
15. oktober 2007 - 10:14 #4
Ahhhh

har fundet ud af 2 ting...

Encoding.Default har løst problemet med at hente sider - problemet med at ÆØÅ bliver til YYY'agtige tegn, befinder sig et andet sted - når jeg på min side, submitter en form med æøå bliver de konverteret til Hex:
name æøå :pass æøå -->
name=%C3%A6%C3%B8%C3%A5
&pass=%C3%A6%C3%B8%C3%A5

min ASP side som modtager denne Querystring kan åbenbart ikke finde ud af at vise dem... - spørgsmålet er om jeg skal prøve at konvertere querystringen inden jeg sender den videre, eller om det er modtageren som skal kunne modtage den !?

allerhelst skal den vel formateres inden...
Avatar billede montago Praktikant
15. oktober 2007 - 10:15 #5
skal siges jeg er igang med en proxy :)
Avatar billede kalp Novice
15. oktober 2007 - 11:51 #6
ASP side som gammel ASP? eller ASPX ??
Hvis det er det sidste så prøv Server.UrlDecode(string)
når du udlæser den.

eller HttpUtility.UrlDecode
Avatar billede montago Praktikant
15. oktober 2007 - 12:07 #7
HTML <---> ASPX-Proxy <---> (ASP | PHP | ASPX | ??? )

som sagt, hvis jeg submitter en alm form på HTML bliver æøå til %C3%A6%C3%B8%C3%A5 i QueryString -- min ASPX-proxy forstår godt denne og printer dem fint ud igen på HTML...

Men hvis jeg smider dem videre til modtageren fx en ASP side, går det galt...
Avatar billede montago Praktikant
16. oktober 2007 - 11:38 #8
opretter et nyt re-defineret spørgsmål
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Webanalytiker til digitale løsninger

Politiets Efterretningstjeneste

Udviklingsorienteret Service Level Manager til PET

Capgemini Danmark A/S

Salesforce CTO - Nordics

Danske Commodities A/S

Procurement manager