andynail: erzwungenes Leerzeichen anzeigen im FireFox

Hallo zusammen

ich übergebe per Link-Adresse in eine aufgerufene Seite den Text aus diesem die Seite geöffnet wurde. Und wenn ich jetzt zb. "Visual Basic" übergebe, hatte ich dafür bereits in die Datenbank "Visual Basic" eingefügt. Der Link der die Seite aufruft wird auch aus der Datenbank ausgelesen und hier zeigt der Text auch "Visual Basic"

Jetzt wird die Seite Aufgerufen und diese soll per JS den Wert table auslesen und in ein div Objekt einfügen. Jedoch zeigt der Text dann aber im FireFox "Visual%A0Basic", also nicht wie im IE der das Leerzeichen anzeigt.

Also wie benötigt der Firefox damit der Text mit Leerzeichen angezeigt wird?

Danke bereits im Voraus

Gruß Andreas

  1. @@andynail:

    nuqneH

    hatte ich dafür bereits in die Datenbank "Visual Basic" eingefügt.

    In der DB sollten keine HTML-Escapes stehen (also nicht ' '), sondern die richtigen Zeichen: 'Visual Basic'. (Das ' ' ist U+00A0 no-break space.)

    Jedoch zeigt der Text dann aber im FireFox "Visual%A0Basic"

    Welche Zeichencdierung erwartet der Server? ISO 8859-1?

    Oder UTF-8? Dann muss es URI-escapet 'Visual%C2%A0Basic' heißen.

    also nicht wie im IE der das Leerzeichen anzeigt.

    Die Anzeige in der Adressleiste des Browsers ist zweitrangig.

    Also wie benötigt der Firefox damit der Text mit Leerzeichen angezeigt wird?

    Warum benötigst du überhaubt ein no-break space? Warum kein normales Leerzeichen ' ' U+0020? 'Visual Basic'. Das wäre dann sowohl nach ISO 8859-1 als auch nach UTF-8 escapet 'Visual%20Basic'.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Hallo

      es geht darum das über ein Menü Seiten in einem Iframe aufgerufen werden und diese dann auch an anderer Stelle der Seite ihren Namen anzeigen sollen. Und die Menüeinträge werden aus einer Datenbank heraus erstellt.

      Und jetzt dachte ich mir ich würde eine Seite mit einem Parameter in der Adresse "?name=Visual Basic" aufrufen und per JavaScript soll dies ausgelesen und angezeigt werden.

      Beim Server handelt es sich um Server2Go und ich weis nicht welche Kokierung er verwendet. Es handelt sich hierbei um eine sqlite Datenbank und ich lasse mir einfach Einträge per sql Abfrage anzeigen, und diese werden dann auch in beiden Browsern mit Sonderzeichen angezeigt. Jedoch nicht mit meiner Javascript Funktion.

      Danke gruß Andreas

      1. @@andynail:

        nuqneH

        es geht darum das über ein Menü Seiten in einem Iframe aufgerufen werden und diese dann auch an anderer Stelle der Seite ihren Namen anzeigen sollen.

        Das beantwortet nicht meine Fragen. Also nochmal:

        1. Warum ein no-break space zwischen 'Visual' und 'Basic'?

        2. Warum nicht als Zeichen (U+00A0), sondern als Zeichen-Entity-Referenz (' ') in der DB?

        Und jetzt dachte ich mir ich würde eine Seite mit einem Parameter in der Adresse "?name=Visual Basic" aufrufen und per JavaScript soll dies ausgelesen und angezeigt werden.

        Warum per JavaScript? Warum nicht serverseitig?

        Jedoch nicht mit meiner Javascript Funktion.

        Die da wäre? Die Tips für Fragende hast du gelesen?

        Qapla'

        PS: Ich wittere eine XSS-Sicherheitsl¨cke.

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. @@Gunnar Bittersmann:

          nuqneH

          Zeichen-Entity-Referenz (' ')

          Hab ich das gerade geschrieben? Wie peinlich.

          Sollte heißen:
          2. Warum nicht als Zeichen (U+00A0), sondern als numerische Zeichenreferenz (' ') in der DB?

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. Hallo

            es funktioniert nix mit 'BereichU+00A0Links', denn das wird so angezeigt. Und per Javascript kann ich bei Aufruf der Seite von dieser aus die Funktion starten die dann schreibt

            var Start = Parameter.search(/table=/) + 1  
            var DBTable = Parameter.substring(Start, Parameter.length)  
            var Ende = DBTable.search(/&/)  
            DBTable = DBTable.substring(5, Ende + ((Ende<0)*DBTable.length))  
            top.document.getElementById('Kennung').innerHTML = DBTable  
            
            

            Und ich denke doch das in einer Adrese kein leerzeichen drinstehen darf.

            Gruß Andreas

            1. @@andynail:

              nuqneH

              es funktioniert nix mit 'BereichU+00A0Links', denn das wird so angezeigt.

              Du solltest auch nicht "U+00A0" reinschreiben, sondern U+00A0 ;-) also das Zeichen ' '.

              Wenn es denn ein U+00A0 no-break space sein soll. Die Frage nach dem Warum hast du nicht beantwortet.

              Und ich denke doch das in einer Adrese kein leerzeichen drinstehen darf.

              Du meinst in einem URI darf kein ' ' U+0020 space vorkommen, richtig. Ein solches muss als '%20' prozent-escapet werden.

              Ein ' ' U+00A0 no-break space muss auch prozent-escapet werden, nur halt je nach Zeichencodierung unterschiedlich.

              Qapla'

              --
              Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
              (Mark Twain)
              1. Hallo

                ich will nicht noch eine Funktion aufrufen die dann Kennung.innerHTML = this.innerHTML ausführt. Denn was der Menüeintrag anzeigt soll auch gleichzeitig der Name der Tabelle werden aus dieser dann der Inhalt im iframe erstellt wird. Und es soll auch möglich sein beim nächsten Aufruf der Webseite durch Cookies wieder zum zuletzt aufgerufenen Inhalt zurückkehren zu können. Es soll ja möglich sein Leerzeichen zu verwenden. Man müsse dann in der sql Abfrage nur den Namen in Anführungszeichen setzen. Und damit alles drumherum angepasst wird verwende ich Javascript Funktionen wie diese der gezeigten Zeilen.

                Gruß Andreas

                1. @@andynail:

                  nuqneH

                  ich will nicht noch […]

                  Du willst vielleicht mal dein Problem beschreiben. Und zwar nachvollziehbar.

                  Und auf die Rückfragen antworten.

                  Gehe zurück in die Badstraße.

                  Qapla'

                  --
                  Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                  (Mark Twain)
                  1. Hallo

                    ok ich denke das ich nun das Problem kenne. Denn ich lase ja die Menü Elemente per php aufbauen und darin werden auch die Links zu den Seiten erstellt. Und damit wird es mit Leerzeichen erstellt. Und einen Link mit Leerzeichen stellt der firefox mit %20 dar.

                    Bitte um Hilfe Danke Gruß Andreas

                    1. @@andynail:

                      nuqneH

                      ok ich denke das ich nun das Problem kenne.

                      Schön für dich. Ich kenne es nicht.

                      Und einen Link mit Leerzeichen stellt der firefox mit %20 dar.

                      Und was ist das Problem?

                      Bitte um Hilfe

                      Wobei?

                      Qapla'

                      --
                      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                      (Mark Twain)
                      1. Hallo

                        ein Link sieht dann so aus:

                        Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc

                        oder

                        Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc

                        und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?

                        Danke gruß Andreas

                        1. Hi,

                          ein Link sieht dann so aus:
                          Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc

                          nein, das darf er nicht.

                          Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc

                          Auch nicht.

                          und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?

                          Sie müssen kontextgerecht codiert werden - im URL-Kontext gilt "Percent Encoding". Übrigens nicht nur Leerzeichen, sondern auch alle Nicht-ASCII-Zeichen sowie alle, die im URL-Kontext sonst eine besondere Bedeutung haben ('?', '&', '=', '%').

                          Ciao,
                           Martin

                          --
                          Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
                          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                          1. Hallo zusammen

                            mit urlencode funktionierts jetzt einwandfrei.

                            Vielen Dank dafür

                            Gruß Andreas

                        2. ein Link sieht dann so aus:

                          Seite.html?b=2&db=Hobby&Table=Visual Basic&sort&Datum desc

                          Das ist kein Link.
                          Das ist möglicherweise eine IRI in einem href Attribut eines HTML-Links.

                          IRIs werden noch nicht überall unterstützt. Also Konvertiere IRIs zu URIs.

                          Seite.html?b=6&db=Sonstiges&Table=Telefonbücher&Datum desc

                          und wie gehe ich jetzt mit den Sonderzeichen - Leerzeichen um?

                          Indem du Percent-Endoding, also urlencode() anwendest, Wenn du beliebigen Text zu URIs zusammenbaust.

                          PS: Deine ganze Kommunikation ist ineffizient, was an deinem verfehlten Vokabular und fehlenden konkreten Daten sowie Kontext-Hinweisen liegt.
                          Du willst das ändern, wenn du eine zielführendere Beratung wünscht.

                          mfg Beat

                          --
                          ><o(((°>           ><o(((°>
                             <°)))o><                     ><o(((°>o
                          Der Valigator leibt diese Fische