none
ASP.NET ClientQueryString Encoding %C4 wird zu %ufffd RRS feed

  • Frage

  • Guten Tag

    Ich konnte nicht sehr viel über mein Problem im Internet finden, Google will mir heute irgendwie nicht helfen. Ich denke, die Sache könnte durchaus auch etwas exotisch sein.

    Zur Situation:

    Ich stelle eine ASP.NET Website zur Verfügung, die von einem externen Partner aufgerufen wird. Da es um ein Codierungs-problem geht, habe ich ihn gebeten, über seine Anwendung den Text "ÄäÖöÜü" zu mir zu schicken.

    Danach haben wir Logs verglichen.

    Er sendet mir "?msg=%C4%E4%D6%F6%DC%FC"

    Ich empfange "?msg=%ufffd%ufffd%ufffd%ufffd%ufffd%ufffd"

    Es ist mir somit nicht mehr möglich, den String irgendwie zu dekodieren. Entsprechend sieht es dann bei mir so aus:

    HttpUtility.UrlDecode(ClientQueryString) == "?msg=������"

    Ich finde das höchst seltsam. Vor allem habe ich keine Möglichkeit, den ClientQueryString im Code abzufangen, bin ja schon im Page_Load Event. Handelt es sich dabei um irgend eine Einstellung, die man in der web.config setzen muss? Oder kann es mit IIS7 zusammenhängen?

    Vielen Dank im Voraus

    Donnerstag, 25. November 2010 08:31

Antworten

  • Hallo Giuseppe,

     - Ist es relevant, was der Partner für ein Encoding verwendet?

    wenn es nicht so wäre, hätte ich wahrscheinlich nicht danach gefragt, oder? :)

     - Wo sehe ich, welches Encoding ich verwende? Im Code wohl nicht auf den ersten Blick, wahrscheinlich in der Web.Condig? Im Code betrachte ich nur die this.ClientQueryString Property.

    Ansonsten habe ich keine spezielle Encoding-Einstellungen eingestellt. Würde ein Auszug aus der Webconfig helfen?

    Wenn dort etwas steht ja (<globalization> Node). Ansonsten dürfte es UTF-8 sein, zumindest wäre das die Standardeinstellung. Das kann aber auch anders sein und hängt von mehreren Faktoren ab.

      http://msdn.microsoft.com/de-de/library/hy4kkhe0.aspx

     

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 25. November 2010 09:29
    Moderator

Alle Antworten

  • Hallo Guiseppe,

    Ich stelle eine ASP.NET Website zur Verfügung, die von einem externen Partner aufgerufen wird. Da es um ein Codierungs-problem geht, habe ich ihn gebeten, über seine Anwendung den Text "ÄäÖöÜü" zu mir zu schicken.

    Danach haben wir Logs verglichen.

    Er sendet mir "?msg=%C4%E4%D6%F6%DC%FC"

    Ich empfange "?msg=%ufffd%ufffd%ufffd%ufffd%ufffd%ufffd"

    mit welchem Encoding sendet er den Request? Welches Encoding verwendest Du?

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 25. November 2010 08:51
    Moderator
  • Hi Stefan

    Gegenfragen:

     - Ist es relevant, was der Partner für ein Encoding verwendet?

     - Wo sehe ich, welches Encoding ich verwende? Im Code wohl nicht auf den ersten Blick, wahrscheinlich in der Web.Config? Im Code betrachte ich nur die this.ClientQueryString Property.

    Ansonsten habe ich keine spezielle Encoding-Einstellungen eingestellt. Würde ein Auszug aus der Webconfig helfen?

    Donnerstag, 25. November 2010 09:11
  • Hallo Giuseppe,

     - Ist es relevant, was der Partner für ein Encoding verwendet?

    wenn es nicht so wäre, hätte ich wahrscheinlich nicht danach gefragt, oder? :)

     - Wo sehe ich, welches Encoding ich verwende? Im Code wohl nicht auf den ersten Blick, wahrscheinlich in der Web.Condig? Im Code betrachte ich nur die this.ClientQueryString Property.

    Ansonsten habe ich keine spezielle Encoding-Einstellungen eingestellt. Würde ein Auszug aus der Webconfig helfen?

    Wenn dort etwas steht ja (<globalization> Node). Ansonsten dürfte es UTF-8 sein, zumindest wäre das die Standardeinstellung. Das kann aber auch anders sein und hängt von mehreren Faktoren ab.

      http://msdn.microsoft.com/de-de/library/hy4kkhe0.aspx

     

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 25. November 2010 09:29
    Moderator
  • Vielen Dank Stefan,

    Der Link hat mich auf die richtige Lösung gebracht.

    <globalization requestEncoding="iso-8859-1" />
    zur Web.Config hinzuzufügen hat gereicht.

    Gruss, Giuseppe

    Donnerstag, 25. November 2010 10:08