peterandree: Sonderzeichen werden komplett verschluckt

ich habe eine Seite in classic asp auf einem IIS (logisch) Wenn ich jetzt in Eingabefelder Sonderzeichen eingebe, werden die in den Requests komplett ignoriert. Also kein Codepageproblem im klassischen Sinne. In labels usw werden Umlaute korrekt dargestellt und es wird auch kein gibberish dargestellt. Einfach nix -->äöü<-- wird zu --><--

Ich muss zugeben, dass weder ASP noch HTML header eine Stärke von mir ist, ich wäre also über jeden Hinweis dankbar.

  1. ich habe eine Seite in classic asp auf einem IIS (logisch)

    ASP lässt sich auch auf Unix-Systemen betreiben.

    Ich muss zugeben, dass weder ASP noch HTML header eine Stärke von mir ist, ich wäre also über jeden Hinweis dankbar.

    Dann könntest du versuchen, dich in HTTP und Zeichencodierung einzulesen.

    1. Dann könntest du versuchen, dich in HTTP und Zeichencodierung einzulesen.

      Hmm. Schade, hab mich nicht genau genug ausgedrückt: Metas, insbesondere Codepage sind schon soweit richtig gesetzt. Woher ich das wissen kann? Wir arbeiten mit Templates, und ähnliche Formulare funktionieren durchaus so, wie erwartet. Ich kann leider nicht erkennen, warum in meinem nicht - daher die Frage hier im Forum.

      1. »» Dann könntest du versuchen, dich in HTTP und Zeichencodierung einzulesen.

        Hmm. Schade, hab mich nicht genau genug ausgedrückt:

        Ich leider auch :)

        Metas, insbesondere Codepage sind schon soweit richtig gesetzt. [...]

        http-equiv ist einem HTTP-Client völlig egal, wenn ein HTTP-Header existiert. Abe auf das hättest du beim Lesen des von mir verlinkten Artikels eigentlich kommen können - zumindest der "Was bedeutet das für mich?"-Absatz wäre zu lesen gewesen.

      2. @@Peterandree:

        nuqneH

        Ich kann leider nicht erkennen, warum in meinem nicht

        Wir auch nicht ...

        daher die Frage hier im Forum.

        ... daher die Tips für Fragende hier im Forum.

        Qapla'

        --
        Bildung lässt sich nicht downloaden. (Günther Jauch)
      3. » Dann könntest du versuchen, dich in HTTP und Zeichencodierung einzulesen.

        Hmm. Schade, hab mich nicht genau genug ausgedrückt: Metas, insbesondere Codepage sind schon soweit richtig gesetzt.

        Diese Angaben spielen bei der Darstellung von Internetseiten nur eine untergeordnete bis gar keine Rolle. Codepage Kodierungen spielen, soweit ich das weiß, nur oder hauptsächlich in der Konsole eine Rolle, die Meta Angaben werden i.d.R. ignoriert.

        Woher ich das wissen kann? Wir arbeiten mit Templates, und ähnliche Formulare funktionieren durchaus so, wie erwartet. Ich kann leider nicht erkennen, warum in meinem nicht - daher die Frage hier im Forum.

        Wie sollen wir das beantworten?

        Wir Wissen eigentlich gar nichts, ausser dass du Probleme mit Sonderzeichen hast und mit ASP arbeitest.
        Jetzt sagst du darüber hinaus noch, dass es manchmal funktioniert. Dann kann man eigentlich nur antworten "Du machst etwas falsch!" - aber um dir zu helfen, benötigt man noch genauere Angaben. Die Aussage "werden die in den Requests komplett ignoriert." ist nicht sonderlich hilfreich. Bedeutet das, sie werden vom Browser nicht abgeschickt? (was ich mir nicht vorstellen kann) Sie kommen in deiner Anwendung nicht an? (was ein Problem deiner Anwendung wäre) Oder etwas ganz anderes?

        Stuppi.

        1. Wie sollen wir das beantworten?

          Hmm, anhand der Beschreibung vielleicht was wiedererkennen? Wenn ich die präzise Ursache des Problems kenne würde, hätte ich auch die Lösung. Bis dahin hab ich halt gefischt, ob jemand über etwas gestolpert ist, das der zugegebenermassen dürftigen Beschreibung entspricht.

          Ist es hier noch niemanden so ergangen, dass er überhaut nix finden kann und jemand mit mehr Erfahrung sofort mögliche Ursachen des Problems runterleiern konnte?

          Aber trotzdem Danke für die Mühe des Durchlesens :)

          1. » Wie sollen wir das beantworten?
            »
            Hmm, anhand der Beschreibung vielleicht was wiedererkennen?

            Ich hatte doch ein paar Fragen in mein Post eingearbeitet, die genau diese Problematik versucht zu klären. Ohne die Beantwortung dieser Fragen, kann man dein Problem nicht wieder erkennnen, weil es so nicht auftreten kann.

            Struppi.

            1. "Die Aussage "werden die in den Requests komplett ignoriert." ist nicht sonderlich hilfreich. Bedeutet das, sie werden vom Browser nicht abgeschickt? (was ich mir nicht vorstellen kann) Sie kommen in deiner Anwendung nicht an? (was ein Problem deiner Anwendung wäre) Oder etwas ganz anderes?"

              Also nochmal von vorne.
              Ausgángslage: Eingabeformulare vom Template in classic, alle mehr oder weniger stark bearbeitet. Im Grunde nix besonderes, ein paar Inputs werden verarbeitet, andere werden direkt an die Workflows weitergereicht, die dann meine eigentliche Arbeit sind (verdammte Kurzarbeit!)

              Wenn ich jetzt per post die Form submitte, kommen alle Inputs ohne Sonderzeichen an. Sie werden einfach verschluckt, aus ->äöü<- wird -><- . Egal ob ich als target "_self" habe, oder eine weitere asp, die dann die Daten verarbeitet und einen workflow startet.

              Die Eingabefelder werden per Request.Form("xyz") ausgelesen, egal in welcher asp

              Meine Vermutung ist, dass die Daten vor dem submit oder eventuell beim Request.form maskiert werden müssen. Das lässt sich aber anhand der funktionierenden Workflows so nicht bestätigen, die tun auch nix besonderes mit den Eingaben.

              die einzig relevante Zeile im asp...code wäre
              <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
              Doctype wäre
              (so wie in allen anderen Formularen halt)

              Wie du siehst, auch ausformuliert kommt da nicht viel mehr an info rum :(

              1. @@Peterandree:

                nuqneH

                die einzig relevante Zeile im asp...code wäre
                <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">

                Welcher Teil von „http-equiv ist einem HTTP-Client völlig egal, wenn ein HTTP-Header existiert“ [suit] war für dich unverständlich?

                Qapla'

                --
                Bildung lässt sich nicht downloaden. (Günther Jauch)
                1. @@Peterandree:

                  nuqneH

                  »» die einzig relevante Zeile im asp...code wäre
                  »» <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">

                  Welcher Teil von „http-equiv ist einem HTTP-Client völlig egal, wenn ein HTTP-Header existiert“ [suit] war für dich unverständlich?

                  Qapla'

                  sehr freundlich...

                  Das erwähne ich die ganze Zeit selbst immer wieder, aber wenn man dann nichtrelevante informationen nicht posted, gibt es auch immer genügend, die moppern. War also ne 50/50 Entscheidung ;)

                  Wie gesagt, da *ist* nix besonderes in der ASP drin

                  1. Wie gesagt, da *ist* nix besonderes in der ASP drin

                    Das hat auch nix mit "ASP" (bzw. deinen Scripten) zu tun sondern wie dein IIS konfiguriert ist und was er im HTTP-Header übermittelt bzw. wie er die Dokumente ausliefert.

                    Natürlich kannst du das ganze auch zusätzlich mittes Response.AddHeader beinflussen, aber wenn du "nix besonders" drin hast, musst du an anderer Stelle suchen.

              2. Meine Vermutung ist, dass die Daten vor dem submit oder eventuell beim Request.form maskiert werden müssen. Das lässt sich aber anhand der funktionierenden Workflows so nicht bestätigen, die tun auch nix besonderes mit den Eingaben.

                Deine Vermutung ist richtig, der Browser kodiert Sonderzeichen, die Dekodierung auf der Serverseite passiert in der Regel von allein oder mit den entsprechenden Modulen/Bibliotheken.

                die einzig relevante Zeile im asp...code wäre
                <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">

                Das ist eine unrelevante Zeile, was dir aber auch schon mehrfach gesagt  wurde.

                Wie du siehst, auch ausformuliert kommt da nicht viel mehr an info rum :(

                Das Problem ist eher, dass du offensichtlich nicht weißt, wie du an relevante Infos kommst.

                Der erste Schritt wäre herauszufinden in welcher Kodierung die Seite ausgeliefert wird (der einfachste ist im Kontextmenü vom Firefox der Menüpunkt "Seiteninformationen") . Der zweite, ob ASP Mechanismen nutzt um z.b. "falsche" Kodierung herauszufiltern? Mir ist sowas noch nicht untergekommen, den i.d.R. werden einfach unsinnige Zeichen dargestellt, wenn die Zeichenkodierungen nicht passen.

                Struppi.

                1. Der erste Schritt wäre herauszufinden in welcher Kodierung die Seite ausgeliefert wird (der einfachste ist im Kontextmenü vom Firefox der Menüpunkt "Seiteninformationen") .

                  Firefox...I wish! IE6 für alle 400.000 Mitarbeiter (naja, die mit Computer - da wundert einen eh nix mehr) Aber das nur am Rande

                  Der zweite, ob ASP Mechanismen nutzt um z.b. "falsche" Kodierung herauszufiltern? Mir ist sowas noch nicht untergekommen, den i.d.R. werden einfach unsinnige Zeichen dargestellt, wenn die Zeichenkodierungen nicht passen.

                  Ist mir auch noch nie untergekommen, daher meine Anfrage. Naja, mal sehen was wir noch so rausfinden. Ich werde dann die Ergebnisse posten, vielleicht gibts ja noch jemand anderes der sich mit sowas rumärgern muss

                  1. Der erste Schritt wäre herauszufinden in welcher Kodierung die Seite ausgeliefert wird (der einfachste ist im Kontextmenü vom Firefox der Menüpunkt "Seiteninformationen") .

                    Firefox...I wish! IE6 für alle

                    und was hält dich davon ab z.b. ein Online Tool für diese Analyse zu benutzen? Irgendwie habe ich den Eindruck, dir liegt gar nicht soviel an der Lösung deines Problems.

                    Struppi.

                    1. und was hält dich davon ab z.b. ein Online Tool für diese Analyse zu benutzen? Irgendwie habe ich den Eindruck, dir liegt gar nicht soviel an der Lösung deines Problems.

                      Online Tool?

                      war nur eine Bemerkung. Selbst der IE6 kann die Kodierung anzeigen

                      (sorry ist immer ein bischen schwierig auf deutschen forum-modus umzuschalten ;) )

                      Das war schon mal ein interessanter Hinweis, anscheinend werden andere Form ulare in anderer Kodierung ausgeliefert, meins in Latin-9. Interessant

                      1. Yerf!

                        Das war schon mal ein interessanter Hinweis, anscheinend werden andere Form ulare in anderer Kodierung ausgeliefert, meins in Latin-9. Interessant

                        Latin-9 ist in deinem Fall aber korrekt. Das ist nur ein anderer Name für ISO 8859-15

                        Gruß,

                        Harlequin

                        --
                        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
  2. ich habe eine Seite in classic asp auf einem IIS (logisch) Wenn ich jetzt in Eingabefelder Sonderzeichen eingebe, werden die in den Requests komplett ignoriert. Also kein Codepageproblem im klassischen Sinne. In labels usw werden Umlaute korrekt dargestellt und es wird auch kein gibberish dargestellt. Einfach nix -->äöü<-- wird zu --><--

    Falsche Encodings verschlucken nicht, Sie erzeugen eine falsche Interpretation der Bytes.

    Dein Phänomen (in Inputfelder) lässt mich eher vermuten, dass hier jemand einen Input nach /[\w]+/ filtert. Mit anderen Worten: alles ausser [a-zA-Z0-9_] wird ausgefiltert.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. So habs gefunden:

    ich hab mal spasseshalber von post auf get umgestellt und dann festgestellt, dass die sonderzeichen numerisch codiert werden. Das Problem war also relativ simpel gelöst, classic asp bietet dafür z.B. sowas wie
    <%Response.charset="utf-8"%>
    an. Vielen Dank für die Hilfe. Einige Hinweise haben mich auf die richtigen Ideen gebracht.

    1. <%Response.charset="utf-8"%>

      Das hätte denselben Effekt wie Response.AddHeader("content-type:text/html; charset=utf-8").

      Also war's doch der HTTP-Header.

      1. » <%Response.charset="utf-8"%>

        Das hätte denselben Effekt wie Response.AddHeader("content-type:text/html; charset=utf-8").

        Also war's doch der HTTP-Header.

        Wobei mich wundert warum dann gar nichts ankommmt. Ist das in ASP so üblich?

        Struppi.

        1. »» » <%Response.charset="utf-8"%>
          »»
          »» Das hätte denselben Effekt wie Response.AddHeader("content-type:text/html; charset=utf-8").
          »»
          »» Also war's doch der HTTP-Header.

          Wobei mich wundert warum dann gar nichts ankommmt. Ist das in ASP so üblich?

          Struppi.

          Tatsächlich, hab ich übersehen. Jetzt muss ich nur noch rausfinden, warum es nur bei meiner Form notwendig ist

        2. Wobei mich wundert warum dann gar nichts ankommmt. Ist das in ASP so üblich?

          Nein - der IIS schickt normalerweise brav einen entsprechenden Header mit. Einnzustellen unter den Eigenschaften der IIS-Instanz im Menüpunkt "MIME-Typen" - ist für eine Fülle an Dateiendungen ein vernünftiger Content-Type hinterlegt. Die Zeichencodierung selbst hängt von den Windows-Einstellungen ab, idR. also ISO-8895-1. - Zumindest im IIS bis Version 6 :)

          1. Windows einstellungen des Servers oder des Clients? Ich hatte nämlich auch mal vermutet, dass es daran liegt, dass ich ein amerikanisches Windows verwende. Aber das Serverbetriebssystem ist deutsch und auf deutschen Wins hat es auch keinen Unterschied gemacht.

            Mal sehen, ob ich morgen dazu komme, mir die Servereinstellungen anzuschauen. Wäre mal interessant

            1. Windows einstellungen des Servers oder des Clients? Ich hatte nämlich auch mal vermutet, dass es daran liegt, dass ich ein amerikanisches Windows verwende. Aber das Serverbetriebssystem ist deutsch und auf deutschen Wins hat es auch keinen Unterschied gemacht.

              Welchen Einfluss sollte die Regionaleinstellung des Clients darauf haben[1], welche Informationen der Server im HTTP-Header verschickt?

              [1] Ausnahme: die Auswertung der HTTP-Accept-Header-Informationen.

              1. Welchen Einfluss sollte die Regionaleinstellung des Clients darauf haben[1], welche Informationen der Server im HTTP-Header verschickt?

                [1] Ausnahme: die Auswertung der HTTP-Accept-Header-Informationen.

                Woher soll ich das wissen? Abweichende Parameter sind immer eine potentielle Fehlerquelle. Was weiss denn ich, was zwischen Client und Server so abgesprochen wird ;)

                1. Woher soll ich das wissen?

                  Ohne irgendwelche Konfiguration hat jeder Jebserver ein definiertes Standardverhalten bei der Auswertung der Accept-Header-Infos - Apache nennt das Content Negotiation - der IIS unterstützt vergleichbares kaum bis garnicht, dafür müssen Plugins/Filter/Erweiterungen herhalten. Wenn du keine Ahnung hast, was auf DEINEM Webserver gemacht wird, dann wirds schwierig :)

                  1. »» Woher soll ich das wissen?

                    Ohne irgendwelche Konfiguration hat jeder Jebserver ein definiertes Standardverhalten bei der Auswertung der Accept-Header-Infos - Apache nennt das Content Negotiation - der IIS unterstützt vergleichbares kaum bis garnicht, dafür müssen Plugins/Filter/Erweiterungen herhalten. Wenn du keine Ahnung hast, was auf DEINEM Webserver gemacht wird, dann wirds schwierig :)

                    Du meinst die je 3-5 Server auf 6 Maschinen ;) ? Ich denke, niemand kann alles wissen. Darum frag ich ja. Danke für die Antworten, srsly!

                    1. Du meinst die je 3-5 Server auf 6 Maschinen ;) ? Ich denke, niemand kann alles wissen. Darum frag ich ja. Danke für die Antworten, srsly!

                      Natürlich kann niemand alles wissen, aber wie sollen wir wissen, wie DEINE Server konfiguriert sind?

                      Btw: ob da 3 oder 5 virtuelle Server auf einem oder 100 Rechnern sind ist doch völlig egal - in deinem konkreten Problem gings um einen Server, ein Script, ein Problem.

                      1. Nein. Application Server, CS Server, Tomcat, IIS und noch ein anderer, der die eigentliche Arbeit macht.
                        Davon ist der Webteil eigentlich nicht wirklich meine Abteilung. Intranet ist halt dafür da, damit uns die Leute sehen ;)