mel: Sonderzeichen werden als Fragezeichen ausgegeben

hi,
folgendes phänomen:

bei einem kunden (und so wie es aussieht NUR bei diesem) werden ganz normale sonderzeichen sowie z.b. hochkommas als fragezeichen auf seinem browser ausgegeben. er verwendet den IE6. wir haben nun auf mehreren rechnern getestet und auf deren IE6-Versionen wird alles korrekt dargestellt. wie könnte das denn sein? hat der kunde irgendeine besondere Browsereinstellung??

danke für die tipps, gruß melanie

  1. bei einem kunden (und so wie es aussieht NUR bei diesem) werden ganz normale sonderzeichen sowie z.b. hochkommas als fragezeichen auf seinem browser ausgegeben. er verwendet den IE6. wir haben nun auf mehreren rechnern getestet und auf deren IE6-Versionen wird alles korrekt dargestellt. wie könnte das denn sein? hat der kunde irgendeine besondere Browsereinstellung??

    definiere "sonderzeichen" - ein normals hochkomma liegt im ascii-bereich und sollte in sehr vielen zeichencodierungen als solches dargestellt werden - egal ob ansi, utf-8 oder windows 1252

    1. definiere "sonderzeichen" - ein normals hochkomma liegt im ascii-bereich und sollte in sehr vielen zeichencodierungen als solches dargestellt werden - egal ob ansi, utf-8 oder windows 1252

      sorry. ich meine wirklich nur ein normales hochkomma. welches im quelltext auch so angegeben wird "".
      ich verstehe auch nicht warum das bei ihm als fragezeichen ausgegeben wird??
      vg melanie

      1. sorry. ich meine wirklich nur ein normales hochkomma. welches im quelltext auch so angegeben wird "".
        ich verstehe auch nicht warum das bei ihm als fragezeichen ausgegeben wird??

        hast du deinen code schon mal validiert? in html darf ein doppeltes hochkomma NUR und ausschließlich als begrenzer für attribute dienen

        wenn du es im fließtext ausgeben willst, musst du es maskieren "

        wie siehts denn sonderzeichen ausserhalb von ascii aus? zb umlaute wie etwa ä oder Ü?

        1. wenn du es im fließtext ausgeben willst, musst du es maskieren "

          wie siehts denn sonderzeichen ausserhalb von ascii aus? zb umlaute wie etwa ä oder Ü?

          die werden auch als fragezeichen dargestellt. die hochkommas sind im fliesstext nicht mit " maskiert. mich wundert halt vor allem, dass es nur bei dem einen rechner so zerschossen dargestellt wird deshalb dachte ich dass da vielleicht eine lokale einstellung nicht passt .
          vg melanie

        2. Tach,

          in html darf ein doppeltes hochkomma NUR und ausschließlich als begrenzer für attribute dienen

          wenn du es im fließtext ausgeben willst, musst du es maskieren "

          nein, das ist nicht nötig, nur innerhalb eines Tags hat " eine Sonderbedeutung, außerhalb ist eine Markierung unnötig. In HTML sind nur < und & immer zu markieren, wenn sie nicht in ihrere Sonderbedeutung gemeint sind.

          mfg
          Woodfighter

          1. nein, das ist nicht nötig, nur innerhalb eines Tags hat " eine Sonderbedeutung, außerhalb ist eine Markierung unnötig. In HTML sind nur < und & immer zu markieren, wenn sie nicht in ihrere Sonderbedeutung gemeint sind.

            ja, du hast natürlich recht - innerhalb eines attributs müssen hochkommas maskiert werden ;)
            ausserhalb ist übrigens auch > immer zu maskieren

            1. Tach,

              ja, du hast natürlich recht - innerhalb eines attributs müssen hochkommas maskiert werden ;)
              ausserhalb ist übrigens auch > immer zu maskieren

              nein, > ist genauso wie " nur innerhalb von Tags ein Sonderzeichen, der Slash / zählt da übrigens auch noch in die selbe Kategorie.

              mfg
              Woodfighter

              1. nein, > ist genauso wie " nur innerhalb von Tags ein Sonderzeichen, der Slash / zählt da übrigens auch noch in die selbe Kategorie.

                http://www.w3.org/International/questions/qa-escapes.de.php
                "Syntax-Sonderzeichen. Es gibt 3 Zeichen, die im Inhalt immer als Escapes auftreten sollten, damit sie nicht die Syntax der Auszeichnungssprache beeinflussen. Diese sind Sprachbestandteile von XML bzw. HTML:
                    *  &lt; (<)
                    *  &gt; (>)
                    *  &amp; (&)
                "

                warum sollte man einen slash in html escapen? der tut doch niemandem etwas?

                übrigens ist es dennoch nicht unpraktisch " und ' immer zu escapen

                <div>benutzereingabe</div>

                wenn der benutzer nun folgendes eingibt
                style="background: red;">benutzereingabe

                konnte folgendes rauskommen
                <div>style="background: red;">benutzereingabe</div>

                die fehlerkorrektur des browsers könnte womöglich das fünfte zeichen gegen ein leerzeichen ersetzen und schwupp ist das "zerstörte layout" im gästebucheintrag fertig

                1. @@suit:

                  http://www.w3.org/International/questions/qa-escapes.de.php

                  Kommt mir bekannt vor. ;-)

                  wenn der benutzer nun folgendes eingibt
                  style="background: red;">benutzereingabe

                  konnte folgendes rauskommen
                  <div>style="background: red;">benutzereingabe</div>

                  die fehlerkorrektur des browsers könnte womöglich das fünfte zeichen gegen ein leerzeichen ersetzen und schwupp ist das "zerstörte layout" im gästebucheintrag fertig

                  Wer Nutzereingaben unbearbeitet in den HTML-Code schreibt, hat es nicht besser verdient. Ein "zerstörtes Layout" ist da das geringste Problem. XSS ein größeres.

                  Live long and prosper,
                  Gunnar

                  --
                  Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
                  1. Kommt mir bekannt vor. ;-)

                    du solltest du arzt gehen, dein gedächtnis lässt nach :D

                    Wer Nutzereingaben unbearbeitet in den HTML-Code schreibt, hat es nicht besser verdient. Ein "zerstörtes Layout" ist da das geringste Problem. XSS ein größeres.

                    darum zur sicherheit zb mit htmlspecialchars + ent_quotes immer und überall escapen

                2. Tach,

                  warum sollte man einen slash in html escapen? der tut doch niemandem etwas?

                  weil der Slash in SGML das Ende eines Tags/Elements anzeigt, HTML (nicht XHTML) ist eine SGML-Anwendung und erlaubt deswegen hübsche Dinge wie <p/foo/ was übersetzt zu <p>foo</p> würde und <p>bar</> was zu <p>bar</p> wird. Der einzige Browser, der das halbwegs kann ist meiner Erinnerung nach allerdings Lynx.

                  mfg
                  Woodfighter

                  1. weil der Slash in SGML das Ende eines Tags/Elements anzeigt, HTML (nicht XHTML) ist eine SGML-Anwendung und erlaubt deswegen hübsche Dinge wie <p/foo/ was übersetzt zu <p>foo</p> würde und <p>bar</> was zu <p>bar</p> wird. Der einzige Browser, der das halbwegs kann ist meiner Erinnerung nach allerdings Lynx.

                    zeig mir bitte ein beispiel, wie ich durch nutzung von obscure-features innerhalb von elementen invaliden html-code erzeugst (zb durch benutzereingaben) und begründe bitte, wie das passieren kann - ich kann mir drunter nix vorstellen

                    folgender schnipsel, da sind wir uns einig ist valide

                      
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                      "http://www.w3.org/TR/html4/strict.dtd">  
                    <html>  
                      <head>  
                        <title>foobar</title>  
                       </head>  
                      <body>  
                        <h1 id="foo">bar</h1>  
                        <p><b>fo&lt; o</b>ba&amp; z</p>  
                      </body>  
                    </html>  
                    
                    

                    der hier zb ist auch valide:

                      
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                      "http://www.w3.org/TR/html4/strict.dtd">  
                    <title/foobar/  
                    <h1 id=foo/bar/<p<b/fo< o/ba& z</>  
                    
                    

                    (man sieht gut, dass sich das syntax-highlighting des forums schon etwas schwer tut

                    wenn du also auf die nutzung von obscure-features in sgml und deren gefahren bestehst, hast du mit deiner aussage

                    In HTML sind nur < und & immer zu markieren, wenn sie nicht in ihrere Sonderbedeutung gemeint sind.

                    unrecht - diese sind sehrwohl auch ausserhalb ihrer "sonderbedeutung" in normalem fliesstext erlaubt, zb wenn ihnen ein leerzeichen folgt

                    sgml ist weit zu umfangreich, alsdass ein mensch alle features im kopf haben kann - prinzipiell ist es jedoch immer empfehlenswert, sämtliche vorkommen von &, ", ', < und > innerhalb von attributen bzw ausserhalb der start- und endtags von elementen zu escapen

                    1. Tach,

                      wenn du also auf die nutzung von obscure-features in sgml und deren gefahren bestehst, hast du mit deiner aussage

                      In HTML sind nur < und & immer zu markieren, wenn sie nicht in ihrere Sonderbedeutung gemeint sind.

                      unrecht - diese sind sehrwohl auch ausserhalb ihrer "sonderbedeutung" in normalem fliesstext erlaubt, zb wenn ihnen ein leerzeichen folgt

                      du hast absolut recht.

                      mfg
                      Woodfighter

        3. @@suit:

          hast du deinen code schon mal validiert?

          Hast _du_?

          in html darf ein doppeltes hochkomma NUR und ausschließlich als begrenzer für attribute dienen

          Nein, das stimmt nicht.

          wenn du es im fließtext ausgeben willst, musst du es maskieren &quot;

          Sowohl " als auch ' dürfen im Text vorkommen.

          Nur in Attributwerten darf das jeweilige Zeichen nicht unmaskiert vorkommen, welches als Begrenzer verwendet wird; wohl aber das jeweils andere.

          Das gilt sogar auch für XHTML (und XML allgemein).

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          1. Nein, das stimmt nicht.

            hatte ich bereits bemerkt, ja ;)

      2. Hi,

        sorry. ich meine wirklich nur ein normales hochkomma. welches im quelltext auch so angegeben wird "".
        ich verstehe auch nicht warum das bei ihm als fragezeichen ausgegeben wird??

        Vielleicht ist einfach nur eine falsche Zeichenkodierung im Browser eingestellt.
        Im Firefox stellt man das unter "Ansicht -> Zeichenkodierung" um.

        Wie das im IE geht weiß ich nicht und kann es auch gerade nicht nachschaun.

        mfG,
        steckl

        1. Wie das im IE geht weiß ich nicht und kann es auch gerade nicht nachschaun.

          eigentlich genauso ;) es heisst nur "Ansicht -> Codierung" (bei meinem testsystem zumindest)