pl: Zero Padding und trim()

problematische Seite

hi,

siehe Thema. String.trim() in FF entfernt auch Nullbytes, sofern die zum Padding verwendet wurden anstatt Leerzeichen.

Kann man sich darauf verlassen daß trim() in allen Browsern gleichermaßen tut in dieser Hinsicht?

Bitte mal um Hinweise ggf. weiterführende Prosa 😉

MfG

  1. problematische Seite

    @@pl

    String.trim() in FF entfernt auch Nullbytes

    Wovon zum Geier sprichst du? Du verwendest (mal wieder!!) feststehende Begriffe in einer völlig anderen Bedeutung als es alle anderen außer dir tun‽

    Was meinst du mit „Nullbytes“? Gewiss nicht U+0000, das ist in HTML nicht erlaubt, IIRC.

    Meinst du geschützte Leerzeichen U+00A0?

    Kann man sich darauf verlassen daß trim() in allen Browsern gleichermaßen tut in dieser Hinsicht?

    Bitte mal um Hinweise ggf. weiterführende Prosa 😉

    Mal eben in MDN bei String.prototype.trim() nachzusehen ist nicht dein Ding? (Da landet man übrigens sofort, wenn man bei DuckDuckGo nach !mdn trim sucht.)

    String('\u{00a0}').trim().length liefert sowohl in Firefox als auch als auch in Safari als auch in Chrome 0.

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. problematische Seite

      hi

      String.trim() in FF entfernt auch Nullbytes

      Wovon zum Geier sprichst du? Du verwendest (mal wieder!!) feststehende Begriffe in einer völlig anderen Bedeutung als es alle anderen außer dir tun‽

      Nullbytes sind Bytes mit der Oktettenwertigkeit 0.

      Was meinst du mit „Nullbytes“?

      ..hätte Dir jede Schmaschine Deiner Wahl gebracht. Stichworte auch padding, null padded

      Gewiss nicht U+0000, das ist in HTML nicht erlaubt, IIRC.

      Eben da solls ja auch nicht hin. Deswegen frage ich ja.

      MfG

      1. problematische Seite

        Hallo pl,

        String.trim() in FF entfernt auch Nullbytes

        Wovon zum Geier sprichst du? Du verwendest (mal wieder!!) feststehende Begriffe in einer völlig anderen Bedeutung als es alle anderen außer dir tun‽

        Nullbytes sind Bytes mit der Oktettenwertigkeit 0.

        String.trim() bearbeitet Zeichenketten, keinen Datenstrom.

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
        1. problematische Seite

          hi

          String.trim() in FF entfernt auch Nullbytes

          Wovon zum Geier sprichst du? Du verwendest (mal wieder!!) feststehende Begriffe in einer völlig anderen Bedeutung als es alle anderen außer dir tun‽

          Nullbytes sind Bytes mit der Oktettenwertigkeit 0.

          String.trim() bearbeitet Zeichenketten, keinen Datenstrom.

          Ja sicher. Von Datenstrom war ja auch nicht die Rede.

          MfG

      2. problematische Seite

        @@pl

        Gewiss nicht U+0000, das ist in HTML nicht erlaubt, IIRC.

        Eben da solls ja auch nicht hin. Deswegen frage ich ja.

        Ebendeshalb schien es mir völlig abwegig, dass du tatsächlich Nullbytes meinst. Wie bitte sollten Nullbytes da erstmal hinkommen – in einen String?

        Und wenn erstmal eins da ist, dann bleibt es auch da. String('\u{0000}').trim().length liefert sowohl in Firefox als auch als auch in Safari als auch in Chrome 1.

        Deine Aussage „String.trim() in FF entfernt auch Nullbytes“ ist für mich nicht nachvollziehbar.

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. problematische Seite

          hi Gunnar

          Gewiss nicht U+0000, das ist in HTML nicht erlaubt, IIRC.

          Eben da solls ja auch nicht hin. Deswegen frage ich ja.

          Ebendeshalb schien es mir völlig abwegig, dass du tatsächlich Nullbytes meinst. Wie bitte sollten Nullbytes da erstmal hinkommen – in einen String?

          Ja, in einem regulären String.

          Und wenn erstmal eins daa ist, dann bleibt es auch da.

          Nein. JS in FF entfernt alle angehängten Nullbytes \0\0\0 bevor der String ins DOM gerendert wird. Meine Frage war ob man sich diesbez. auf alle Browser verlassen kann.

          Deine Aussage „String.trim() in FF entfernt auch Nullbytes“ ist für mich nicht nachvollziehbar.

          Steht alles im Artikel. Aber wenn es für Dich nicht nachvollziehbar ist, kannst Du wahrscheinlich auch keine Antwort auf meine Frage geben 😉

          Was auch um Himmels Willen nicht weiter dramatisch ist.

          MfG

          1. problematische Seite

            Tach!

            Wie bitte sollten Nullbytes da erstmal hinkommen – in einen String?

            Ja, in einem regulären String.

            Javascript-Strings enthalten Zeichen, keine Bytes. Ein Zusammenhang zwischen Zeichen und Bytes existiert da nicht.

            Und wenn erstmal eins daa ist, dann bleibt es auch da.

            Nein. JS in FF entfernt alle angehängten Nullbytes \0\0\0 bevor der String ins DOM gerendert wird. Meine Frage war ob man sich diesbez. auf alle Browser verlassen kann.

            Da es bei Strings keine Bytes gibt, können sie auch nicht von Javascript-Stringfunktionen entfernt werden.

            Das Verhalten von trim() ist definiert, auch die Zeichen, die davon betroffen sind. Das Zeichen mit dem Unicode-Codepoint \u0000, auch NULL character genannt, ist jedenfalls nicht dabei, falls du das mit Nullbytes verwechselst.

            Im Chrome einem Element das innerText mit einem String zu setzen, der NULL Characters enthält, ergab, dass diese dort ankamen. An ihrer Stelle war im DOM-Inspector ein Freiraum zu sehen. Im Firefox war es ähnlich, da aber Kästchen.

            dedlfix.

        2. problematische Seite

          @@Gunnar Bittersmann

          String('\u{0000}').trim().length liefert 1 war gemeint, nicht String('\u{00a0}').trim().length. Im Posting berichtigt.

          LLAP 🖖

          --
          „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          1. problematische Seite

            Gunnar Du hast recht, trim() macht in dieser Hinsicht gar nüscht.

            MfG

        3. problematische Seite

          hi,

          Ebendeshalb schien es mir völlig abwegig, dass du tatsächlich Nullbytes meinst. Wie bitte sollten Nullbytes da erstmal hinkommen – in einen String?

          Die Frage ist berechtigt. Die Antwort steht hier, siehe getString() Funktion.

          Aber letztendlich ist es zweckmäßger anstelle 0x00 0x20 in den ArrayBuffer zu setzen. Serverseitig sieht das so aus:

          echo pack("A20", "string");
          

          Mit Ajax ist hierzu responseType = "arraybuffer" zu veranlassen.

          MfG

          1. problematische Seite

            Hallo,

            echo pack("A20", "string");
            

            Na, wenn dir das mal nicht versackt!…

            Gruß
            Kalk

            1. problematische Seite

              Hallo,

              echo pack("A20", "string");
              

              Na, wenn dir das mal nicht versackt!…

              Das liegt aber an führenden Nullen, nicht am Padding.

              MfG

  2. problematische Seite

    Tach!

    siehe Thema. String.trim() in FF entfernt auch Nullbytes, sofern die zum Padding verwendet wurden anstatt Leerzeichen.

    Javascript arbeitet bei Strings zeichenorientiert mit Unicode als Zeichensatz. Bytes existieren in dem Zusammenhang nicht.

    Kann man sich darauf verlassen daß trim() in allen Browsern gleichermaßen tut in dieser Hinsicht?

    String.prototyp.trim() ist seit längerer Zeit Bestandteil des ECMAScript-Standard. Alle Browser unterstützen das nicht, aber alle aktuellen, wenn man dem MDN Glauben schenken darf. Zur Not gibt es Polyfills.

    dedlfix.

  3. problematische Seite

    Korrektur;

    ich hatte die falsche Seite verlinkt. Hier nun die richtige Seite wo das Zero-Padding zum Einsatz kommt.

    In FF wie Chrome ken Problem. Es betrifft die Daten für die Tabelle ganz unten. Die Daten werden per Ajax geholt.

    Sorry.

    1. problematische Seite

      Tach!

      ich hatte die falsche Seite verlinkt. Hier nun die richtige Seite wo das Zero-Padding zum Einsatz kommt.

      In FF wie Chrome ken Problem. Es betrifft die Daten für die Tabelle ganz unten.

      Du solltest mal Debugging betreiben. Es ist zwar so, dass die NULL-Zeichen entfernt werden, aber das liegt weder an String.prototype.trim() noch am Browser.

      dedlfix.

      1. problematische Seite

        Tach!

        ich hatte die falsche Seite verlinkt. Hier nun die richtige Seite wo das Zero-Padding zum Einsatz kommt.

        In FF wie Chrome ken Problem. Es betrifft die Daten für die Tabelle ganz unten.

        Du solltest mal Debugging betreiben. Es ist zwar so, dass die NULL-Zeichen entfernt werden, aber das liegt weder an String.prototype.trim() noch am Browser.

        Dann tät mich mal interessieren wer da die NULL-Zeichen entfernt. Mein Code vielleicht?

        MfG 😉

        1. problematische Seite

          Tach!

          Du solltest mal Debugging betreiben. Es ist zwar so, dass die NULL-Zeichen entfernt werden, aber das liegt weder an String.prototype.trim() noch am Browser.

          Dann tät mich mal interessieren wer da die NULL-Zeichen entfernt. Mein Code vielleicht?

          Moment, Irrtum meinerseits. Trim ist es weiterhin nicht, aber der HTML-Parser ist es. Beim Zuweisen an innerText bleiben die Zeichen erhalten, beim Zuweisen an innerHTML jedoch nicht. Dein Code übergibt das ausfüllte Template an jQuerys .html(). Das hielt ich für den Täter. Aber das reicht vermutlich auch nur durch.

          dedlfix.

          1. problematische Seite

            Tach!

            Du solltest mal Debugging betreiben. Es ist zwar so, dass die NULL-Zeichen entfernt werden, aber das liegt weder an String.prototype.trim() noch am Browser.

            Dann tät mich mal interessieren wer da die NULL-Zeichen entfernt. Mein Code vielleicht?

            Moment, Irrtum meinerseits. Trim ist es weiterhin nicht, aber der HTML-Parser ist es. Beim Zuweisen an innerText bleiben die Zeichen erhalten, beim Zuweisen an innerHTML jedoch nicht. Dein Code übergibt das ausfüllte Template an jQuerys .html(). Das hielt ich für den Täter. Aber das reicht vermutlich auch nur durch.

            So isses. Aber jetzt wo Du mich an der Ehre packst 😉

            Also, mal genauer hingeguckt: trim() machts tatsächlich nicht. Es kann nur in meiner TE passieren die beim .replace auf das \w+ matcht. Und da fliegt eben alles raus was nicht darstellbar ist.

            Ja, ne, jetz is klar 😉

            Dank Dir!

            1. problematische Seite

              Tach!

              Es kann nur in meiner TE passieren [...].

              Nö, die macht es nicht, jedenfalls ist das Resultat des xr()-Aufrufs noch voll Müll.

              dedlfix.

          2. problematische Seite

            Tach!

            Du solltest mal Debugging betreiben. Es ist zwar so, dass die NULL-Zeichen entfernt werden, aber das liegt weder an String.prototype.trim() noch am Browser.

            Dann tät mich mal interessieren wer da die NULL-Zeichen entfernt. Mein Code vielleicht?

            Moment, Irrtum meinerseits. Trim ist es weiterhin nicht, aber der HTML-Parser ist es. Beim Zuweisen an innerText bleiben die Zeichen erhalten, beim Zuweisen an innerHTML jedoch nicht. Dein Code übergibt das ausfüllte Template an jQuerys .html(). Das hielt ich für den Täter. Aber das reicht vermutlich auch nur durch.

            jQuery machts: mit .html(str) fliegen die Nullen aus str raus, mit .text(str) landen sie im Document. guilty!

            Danke und Gruß!

            1. problematische Seite

              Tach!

              jQuery machts: mit .html(str) fliegen die Nullen aus str raus, mit .text(str) landen sie im Document. guilty!

              Nö, wie ich in meiner Korrektur schrieb, ist es nicht jQuerys .html(), sondern das Element.innerHTML. jQuerys .html() macht bezüglich dieser Zeichen gar nichts, wie man auch in dessen Code sehen kann.

              dedlfix.

              1. problematische Seite

                Tach!

                jQuery machts: mit .html(str) fliegen die Nullen aus str raus, mit .text(str) landen sie im Document. guilty!

                Nö, wie ich in meiner Korrektur schrieb, ist es nicht jQuerys .html(), sondern das Element.innerHTML. jQuerys .html() macht bezüglich dieser Zeichen gar nichts, wie man auch in dessen Code sehen kann.

                Also reicht jQuery nicht nur vermutlich nur durch sondern offensichtlich 😉

                Egal, wenn ich den Täter erschossen hätte, hätte ich das hinterher immer noch feststellen können.

                MfG

                1. problematische Seite

                  Hallo pl,

                  du hast das als Scherz gemeint und vermutlich nichts Böses dabei gedacht. Und ich will Dich hiermit nicht angreifen oder „ausschimpfen“.

                  Aber meine Reaktion, als ich das las, möchte ich trotzdem spiegeln: Mir wurde schlecht. Die Metapher erinnerte mich grell an den Umgang der USA mit mutmaßlichen, insbesondere nicht-weißen Straftätern.

                  Rolf

                  --
                  sumpsi - posui - clusi
                  1. problematische Seite

                    @@Rolf B

                    Die Metapher erinnerte mich grell an den Umgang der USA mit mutmaßlichen, insbesondere nicht-weißen Straftätern.

                    Insbesondere als Nicht-Weißer muss man gar nichts getan haben, sondern einfach nur irgendwie verdächtig erscheinen. Unarmed black man shot to death in own backyard after police mistake cell phone for weapon

                    41 shots, again and again

                    LLAP 🖖

                    --
                    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
                    1. problematische Seite

                      Moin,

                      Der Roman Onkel Toms Hütte ist aus dem Jahr 1852 und ist mehrfach verfilmt worden.

                      Kritik ändert nichts an der Gesellschaftsordnung.

                      MfG, schönen Sonntag.

                  2. problematische Seite

                    hi

                    du hast das als Scherz gemeint und vermutlich nichts Böses dabei gedacht. Und ich will Dich hiermit nicht angreifen oder „ausschimpfen“.

                    Aber meine Reaktion, als ich das las, möchte ich trotzdem spiegeln: Mir wurde schlecht. Die Metapher erinnerte mich grell an den Umgang der USA mit mutmaßlichen, insbesondere nicht-weißen Straftätern.

                    Es ist eine Frage der Einstellung. Ich für meinen Teil gucke Weltspiegel, Tagesschau & Co nur weil ich über diese Art von Propaganda einfach nur noch lachen kenn. Also ich halte es da wie Hannes Wader.

                    Der Kern der Aussage trifft jedoch ein Problem was jeder Programmierer kennt wenn er Zweifel hat ob sein Code auch wirklich das macht was er soll.

                    MfG, schönen Sonntag.

                    1. problematische Seite

                      Hallo pl,

                      den Kern der Aussage habe ich durchaus verstanden und der war auch nicht mein Anliegen.

                      Was Du mit der Klassifizierung der Mainstream-Medien als Propaganda in diesem Kontext sagen willst, verstehe ich aber nicht. Willst Du sagen, dass die Darstellung des Umgangs der USA mit nicht-weißen, mutmaßlichen Straftätern Propaganda ist? Also Nachrichtenselektion zwecks politischer Beeinflussung? Das wäre dann eine Anti-USA Beeinflussung, und zwar durch die Medien, deren Inhalte seit WW2 angeblich durch die Siegermächte diktiert werden. Bring ich jetzt nicht übereinander.

                      Rolf

                      --
                      sumpsi - posui - clusi
                      1. problematische Seite

                        hi,

                        den Kern der Aussage habe ich durchaus verstanden und der war auch nicht mein Anliegen.

                        Was Du mit der Klassifizierung der Mainstream-Medien als Propaganda in diesem Kontext sagen willst, verstehe ich aber nicht.

                        Ich habe das hier neulich mal erklärt, es wurde gelöscht. Ansonsten stehts auf einer meiner Seiten, Suchbegriff Propaganda.

                        Und ich weise in diesem Zusammenhang nicht umsonst auf Onkel Toms Hütte hin, einen Roman aus dem vorvorletzten Jahrhundert: Genau daran siehst Du doch wie rückständig diese Gesellschaft heute ist.

                        Gerade wir in unserem Alter sollten sowas doch erkennen können!

                        MfG