10. august 2005 - 14:55Der er
8 kommentarer og 1 løsning
Skift af encoding i Request.Form-indhold
Jeg er i en situation hvor Request.Form-indholdet er encoded med ISO-8859-1 men ASP.NET tror det er UTF-8, og den henter derfor æøå ud forkert. Den situation kan jeg ikke lave om på - jeg skal bare se om jeg alligevel kan få indholdet korrekt ud.
Jeg kan se hvis jeg henter indholdet af Request.InputStream og encoder med ISO-8859-1, at så er indholdet korrekt, men det er det ikke hvis jeg bruger Request.Form["feltnavn"]
Det hjælper ikke at sætte Request.ContentEncoding = Encoding.GetEncoding("iso-8859-1"); inden jeg henter værdierne ud.
Hvordan får jeg den til at hente værdierne ud rigtigt, uden at skulle lave streng-gymnastik i den rå streng i InputStream?
Nej, det var ikke det jeg mente med streng-gymnastik. Det var hvis jeg skulle tage den rå "InputStream" og finde frem til nøgler og værdier i den.
Desværre virker dit eksempel ikke i situationen. Jeg går ud fra det er fordi æøå allerede er forsvundet når s hentes ud af Request.Form. Man kan jo ikke encode sig frem til dem når de først er væk.
public static NameValueCollection Parse(string s) { NameValueCollection res = new NameValueCollection(); string[] parts = s.Split("=&".ToCharArray()); for(int i = 0; i < parts.Length/2; i++) { res.Add(parts[2*i], parts[2*i+1]); } return res; }
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.