Umlaute in ClientQueryString anderst als in URL

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von michivandersar.

    Umlaute in ClientQueryString anderst als in URL

    Hallo zusammen,

    Ich habe ein seltsames Phänomen. Und zwar habe ich eine kleine ASP-Seite, welche aus einem Parameter in der URL eine Weiterleitung durchführt, dies für unser Intranet.

    Jetzt habe ich aber ein Problem mit den Umlauten. Und zwar wird eine Suchanfrage in ein Formular eingegeben, welches dann nach einer Prüfung die Daten per GET-Parametern an meine Seite übergeben. Die aufgerufene Adresse sieht so aus:

    Quellcode

    1. https://sharepointsearchforwarder.***.ch/?url=https://adresssuche.***.ch/index.html?q=?k=%C3%A4%C3%B6%C3%BC


    Wenn ich dann allerdings zu Beginn des Page_Load-Ereignisses den ClientQueryString abrufe, steht dort folgendes drin:

    Quellcode

    1. url=https%3a%2f%2fadresssuche.***.ch%2findex.html%3fq%3d%3fk%3d%u00e4%u00f6%u00fc

    Die Sonderzeichen wie "/", "?", etc wurden sauber ersetzt, jedoch wurde %C3%A4%C3%B6%C3%BC (äöü) zu %u00e4%u00f6%u00fc. Dies passiert auch mit anderen Sonderzeichen wie "é" und "à". Wahrscheinlich auch noch weitere. Wie kann ich das umgehen/korrigieren? Ich vermute es liegt an dem Encoding, jedoch kann ich nicht nachvollziehen wo ich das ändern muss und was es sein sollte.

    Ich hoffe ihr könnt mir helfen, Danke ;)
    Aus den UTF8 Url-encodeten äöü - %C3%A4%C3%B6%C3%BC werden beim nochmaligen Url-encoden %u00e4%u00f6%u00fc.
    00E4, 00F6, 00FC sind die Unicode(UTF16) Hex-Codes für äöü.

    Entweder alles Url-encoden

    Quellcode

    1. https%3A%2F%2Fsharepointsearchforwarder.***.ch%2F%3Furl%3Dhttps%3A%2F%2Fadresssuche.***.ch%2Findex.html%3Fq%3D%3Fk=%C3%A4%C3%B6%C3%BC


    oder alles nicht encoden:

    Quellcode

    1. https://sharepointsearchforwarder.***.ch/?url=https://adresssuche.***.ch/index.html?q=?k=äöü

    Eierlein schrieb:

    Aus den UTF8 Url-encodeten äöü - %C3%A4%C3%B6%C3%BC werden beim nochmaligen Url-encoden %u00e4%u00f6%u00fc.

    DANKE!!

    Die URL kann ich nicht bearbeiten, da sie direkt aus Sharepoint kommt. Aber dank deiner Erklärung konnte ich mittels

    Quellcode

    1. Server.urlDecode()
    aus den Unicode-Zeichen wieder normale Umlaute generieren, welche schlussendlich bei der Weiterleitung mittels

    Quellcode

    1. Server.urlEncode()
    wieder in "%C3..." (also UTF8) umgewandelt werden.

    Vielen Dank für die schnelle Hilfe :D