Avatar billede Slettet bruger
13. december 2005 - 14:04 Der er 3 kommentarer

Læs Querystring med danske tegn genereret af JavaScript

Klassisk problemstilling:

Jeg genererer en URL i javascript med en parameter som indeholder danske tegn:
java script:
  <script language=javascript>
    window.open("/minside.aspx?titel=titelæøå");
  </script>

Denne parameter vil jeg læse fra minside.aspx via C#:

C#:
  string Title = Request.QueryString["titel"];

Men pludselig er de danske bogstaver forsvundet.

Jeg har prøvet at bruge escape() funktionen i JavaScript til at encode strengen, men de danske bogstaver forsvinder stadig.

Hvad er løsningen på dette typiske problem?
Avatar billede Slettet bruger
13. december 2005 - 14:53 #1
Den ikke så smarte men hurtige løsning er at parse querystrengen selv. Det viser sige at Request.RawUrl indeholder de danske tegn, mens Request.QueryString[""] ikke gør:

  string Title = GetTitle(Server.UrlDecode(Request.RawUrl));

  private string GetTitle(string RawUrl)
  {
    if (RawUrl.IndexOf("title=") > 0)
    {
      int start = RawUrl.IndexOf("title=");
      return RawUrl.Substring(start).Replace("title=", "");
    }
    return ""; 
  }
Avatar billede Slettet bruger
13. december 2005 - 14:54 #2
Enhver løsning der er bedre end denne er mere end velkommen.
Avatar billede bromer Nybegynder
13. december 2005 - 15:05 #3
Jeg stiller lige et tillægsspørgsmål, da jeg ikke anede at man kunne fange den rå streng på den måde. Hvordan fanger man så POST strengen?
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