lørdag, januar 23, 2021

QueryString med Æ, Ø og Å

Daily Rush Debat Programmering QueryString med Æ, Ø og Å

  • Forfatter
    Emne
  • #0

    Krisp
    Bruger
    5.059 indlæg
    Offline

    Nedenstående foregår i ASP.NET m. C#:

    Jeg står og skal læse internationale bogstaver, som Æ, Ø, Å osv. i en querystring og jeg forsøger i dette tilfælde at lave en response.write med det. Problemet er bare, at den læser alle internationale chars som spørgsmåls tegn.

    Jeg har prøvet alt muligt en/decoding i form af UrlEncoder m.m., men så returnere den blot et encodet spørgsmålstegn.

    Hvad er det der går galt? Jeg ved at det kan lade sig gøre at læse de her tegn igennem en QueryString.

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

Viser 14 kommentarer - 1 til 14 (af 14 i alt)
  • Forfatter
    Kommentarer
  • #1

    Picco
    Bruger
    4.216 indlæg
    Offline

    Lyder som et problem med tegnsæt. Måske skal du konvertere fra UTF-8 til ISO-8859-1 eller omvendt.

    "Kind of like a drunken Batman with a huge cock."

    #2

    Krisp
    Bruger
    5.059 indlæg
    Offline

    #1: I web.config eller?

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

    #3

    Picco
    Bruger
    4.216 indlæg
    Offline

    #2: Jeg kender hverken ASP.NET eller C#, desværre.

    "Kind of like a drunken Batman with a huge cock."

    #4

    harleydk
    Bruger
    252 indlæg
    Offline

    Kan du poste din querystring?

    Er det en aspx-side eller en ashx-handler der skal tolke den?

    Står der noget om ‘cultureInfo’ i din web.config?

    #5

    Krisp
    Bruger
    5.059 indlæg
    Offline

    #4: Det er en aspx side.

    Der står bl.a. culture=”auto” og uiCulture=”auto”

    Eks. på min querystring
    url.com/testsite.aspx?ID=Rødgrød

    Og fra codebehind:
    HttpUtility.UrlDecode(Request.QueryString[“ID”]);

    Jeg har lige forsøgt at skifte til iso-8859-1 i web.config, som Picco foreslår. Det giver mig “Rødgrød” i min response.write, hvis jeg indtaster Rødgrød i querystring.

    Jeg kan ikke rigtigt få fat på det ønskede resultat.

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

    #6

    Picco
    Bruger
    4.216 indlæg
    Offline

    #5: Jeg ved ikke, hvor stor en hjælp det er, men “Rødgrød” er UTF-8 udgaven af “Rødgrød”, som det ser ud i ISO-8859-1 når det *ikke* bliver konverteret.

    "Kind of like a drunken Batman with a huge cock."

    #7

    Krisp
    Bruger
    5.059 indlæg
    Offline

    #6: Det giver ingen mening i mit hovede, når jeg har sat den til at være iso-8859-1 i web.config filen.

    Men burde det så ikke kunne løses med noget lignende:

    HttpUtility.UrlDecode(Request.QueryString[“ID”], System.Text.Encoding.UTF8);

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

    #8

    Fisker
    Bruger
    12.648 indlæg
    Offline

    Du har vel ikke sat requestEncoding til ISO-8859-1

    Så du får strengen i UTF-8 og spytter den tilbage i ISO-8859-1

    #9

    eqMa
    Bruger
    107 indlæg
    Offline

    Nu vil jeg ikke sige at det er umuligt, men HTTP querystrings og ÆØÅ er altså dårlig karma!

    Hvis du læser her på wikipedia: http://en.wikipedia.org/wiki/Query_string under URL encoding vil du se at du bør angive danske tegn med deres hex repræsentation.

    #10

    harleydk
    Bruger
    252 indlæg
    Offline

    #9 I princippet har du ret, men alle de større browsere sørger selv for den slags i dag. Så det burde ikke være et issue, men i princippet har du som sagt ret.

    #0 Det er svært at finde ud af hvad der er i vejen når man ikke sidder med projektet i hånden. Hvis du sender mig en private message svarer jeg tilbage med min e-mail, så kan du sende mig projektet eller de udvalgte filer hvis du har lyst, så skal jeg nok debugge den for dig. Burde ikke tage så lang tid, alt andet lige.

    #11

    roadrunnah
    Bruger
    14.414 indlæg
    Offline

    #6, Jeg troede din post i #3 var nok.. hvorfor så blive ved med at blande dig?

    DAMN YOU Clicker Heroes!

    #12

    Fisker
    Bruger
    12.648 indlæg
    Offline

    #11 Fordi hans hjælp ikke havde noget med C#/Asp.Net at gøre og derfor ikke er relevant i forhold til hans post #3?

    #13

    Krisp
    Bruger
    5.059 indlæg
    Offline

    #11: Picco’s posts har været relevante, det er din ikke.

    #8: Både requestEncoding og responseEncoding står til iso-8859-1.

    *Update*

    Jeg fandt ud af, at det virkede med Request.RawUrl. Så det har jeg brugt istedet.

    Eksempel:

    string strRawurl = Server.UrlDecode(Request.RawUrl);

    Så vælger jeg blot, at den skal fjerne alt før = tegnet, så jeg får samme resultat som ved en Request.Querystring:

    string strQuery = strRawurl.Substring(strRawurl.IndexOf(‘=’) + 1);

    Steam: Krisp89 - Origin: Krisp1989 - BattleTag: Krisp#2319

    #14

    _Venom
    Bruger
    5.364 indlæg
    Offline

    i stedet for det fiksfakseri, så prøv:

    Request.Params[“ID”]

    (Redigeret 30-02-3045 13:37)

Viser 14 kommentarer - 1 til 14 (af 14 i alt)
  • Du skal være logget ind for at kommentere på dette indlæg.