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?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.