bepe: url decode: '+' wird in leerzeichen umgewandelt ?

hi

kann man verhindern, dass die urldecode() methode ein '+' in der URL einfach in ein leerzeichen umwandelt? ich dachte immer, dass nur %XY werte von URL-decode ersetzt werden?

lg bernhard

  1. Hallo Freunde des gehobenen Forumsgenusses,

    kann man verhindern, dass die urldecode() methode ein '+' in der URL einfach in ein leerzeichen umwandelt?

    Gar nicht.

    ich dachte immer, dass nur %XY werte von URL-decode ersetzt werden?

    Das + ist in URLs der Ersatz des Leerzeichens, so ist das Problem?

    Gruß
    Alexander Brock

    1. Hallo Alexander

      Das + ist in URLs der Ersatz des Leerzeichens, so ist das Problem?

      ist das offiziell? oder browserabhängig?

      warum ich das brauche ist etwas schwer zu beschreiben: die 'id' die wir mit '+' im parameter übergeben, darf nicht verändert werden, da der datensatz sonst in der DB nicht mehr lokalisiert werden kann.

      die frage ist obs da einen sauberen weg gibt, oder ob ich irgendwas rumpfuschen muss :-(

      lg bernhard

      1. Hallo bepe.

        Das + ist in URLs der Ersatz des Leerzeichens, so ist das Problem?

        ist das offiziell? oder browserabhängig?

        Ja. Darf nicht sein.

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
        [HTML Design Constraints: Logical Markup]
        1. Hi Ashura

          ist das offiziell? oder browserabhängig?

          Ja. Darf nicht sein.

          hm ... noch ne sache die ich nicht bedacht habe, und ich glaub ich hab das nach lektüre des textes noch nicht ganz kapiert: UTF-8 geht nicht mit urldecode() - der konvertiert nur Latin-1 oder? nix mit griechisch, polnisch, russisch oder so :-(

          lg bernhard

  2. echo $begrüßung;

    kann man verhindern, dass die urldecode() methode ein '+' in der URL einfach in ein leerzeichen umwandelt?

    Wenn das + bei dir für ein + steht und nicht für ein kodiertes Leerzeichen, hast du keine URL-kodierten Daten vorliegen, sondern entweder bereits dekodierte Daten oder Datenmüll.

    Wenn dieser Hinweis nicht ausreicht, beschreibe bitte etwas genauer, wo aus der Sicht deines Scripts die Daten herkommen und in welchem Format sie da vorliegen.

    echo "$verabschiedung $name";

  3. hi,

    kann man verhindern, dass die urldecode() methode ein '+' in der URL einfach in ein leerzeichen umwandelt?

    Man kann rawurldecode() nehmen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga,

      kann man verhindern, dass die urldecode() methode ein '+' in der URL einfach in ein leerzeichen umwandelt?

      Man kann rawurldecode() nehmen.

      DANKE! du bist ein hit!

      auf längere sicht gesehen muss ich diesen bug wohl doch ausbessern. hab ich schlichtweg nicht bedacht, dass '+' tatsächlich ein 'reserved character' ist, wie ich das damals eingeführt habe.

      lg bernhard