cr: Umlaute in URLS

Hallo zusamman,

ich habeeine bildergalerie erstellt -alle bilderliegen mit den entsprechenden Bezeichnungen in einem Verzeichnis.

Nun habeichgemerkt, dass umlaute im Dateinam beim Aufruf (eingebettet im image tag einer htmlseite) durchaus funktionieren - nur bei dem & tut sich der browser schwer.

eine url sieht wie folg aus:

bildergalerie.php?kategorie=album1&bild=das-ist-ein-wunderschönes-testbild

die bildergalerie.php setzt dann den get parameter im img-tag um.

sollte ich umlaute codieren oder es so lassen?

danke für eine kurze hilfe.

  1. Om nah hoo pez nyeetz, cr!

    bildergalerie.php?kategorie=album1&bild=das-ist-ein-wunderschönes-testbild

    die bildergalerie.php setzt dann den get parameter im img-tag um.

    sollte ich umlaute codieren oder es so lassen?

    das "&" muss codiert werden als "&"

    Umlaute kannst du so lassen, ich würde allerdings keine Umlaute verwenden: wunderschoen

    alte Browser beherrschen keine Umlaute in URL (such dir eine Pluralvariante aus), für die gibt es zur Not puny-code.

    Matthias

    --
    1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. Hallo,

      das "&" muss codiert werden als "&"

      das gilt für HTML-Quellcode, aber nicht für den URL-Kontext.

      alte Browser beherrschen keine Umlaute in URL (such dir eine Pluralvariante aus), für die gibt es zur Not puny-code.

      Das gilt für den Hostnamen (Domain), aber nicht für den lokalen Pfad.

      Ciao,
       Martin

      --
      Ungeschehene Ereignisse können einen katastrophalen Mangel an Folgen nach sich ziehen.
        (Unbekannter Politiker)
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hi,

    Nun habeichgemerkt, dass umlaute im Dateinam beim Aufruf (eingebettet im image tag einer htmlseite) durchaus funktionieren

    damit begibst du dich auf dünnes Eis. Ich vermute, dass der Browser die Nicht-ASCII-Zeichen noch selbständig umcodiert, aber welche Zeichencodierung er dabei zugrundelegt, ist nicht festgelegt. Du weißt also nicht, ob er "Grünfläche" dann als Gr%FCnfl%E4che (ISO-8859-x) oder Gr%C3%BCnfl%C3%A4che (UTF-8) codiert.

    nur bei dem & tut sich der browser schwer.

    Was willst du damit sagen? Wenn ein '&' Teil eines URL-Parameters ist, MUSS es als %26 codiert werden, weil es sonst als Trennzeichen zwischen zwei URL-Parametern betrachtet wird. Das wird der Browser aber nicht selbständig tun, weil er die Bedeutung nicht unterscheiden kann und die Bedeutung als Trennzeichen die wahrscheinlichere ist.

    sollte ich umlaute codieren oder es so lassen?

    Du solltest sie am besten vermeiden. Denn selbst wenn du sie selbst codierst und damit eine Zeichencodierung festlegst, weißt du immer noch nicht sicher, in welcher Codierung die Namen im Dateisystem gespeichert werden. Es wäre also immer noch Glückssache, ob die Dateien gefunden werden oder nicht.

    Ciao,
     Martin

    --
    Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. @@Der Martin:

      nuqneH

      Was willst du damit sagen? Wenn ein '&' Teil eines URL-Parameters ist, MUSS es als %26 codiert werden, weil es sonst als Trennzeichen zwischen zwei URL-Parametern betrachtet wird.

      Meine Glaskugel sagt, dass genau das gewünscht ist: & als Trennzeichen zwischen Parametern.

      Für den OP: http://forum.de.selfhtml.org/archiv/2009/2/t182897/#m1210982 f.

      Qapla'

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

        Was willst du damit sagen? Wenn ein '&' Teil eines URL-Parameters ist, MUSS es als %26 codiert werden, weil es sonst als Trennzeichen zwischen zwei URL-Parametern betrachtet wird.
        Meine Glaskugel sagt, dass genau das gewünscht ist: & als Trennzeichen zwischen Parametern.

        ich habe zwar beim Schreiben meines Beitrags noch nicht daran gedacht, dass es dann im HTML-Code auch als &amp; maskiert sein muss, weil ich nur auf den URL-Kontext fixiert war - aber ich glaube andererseits nicht, dass hier das Problem des OP liegt (vielleicht äußert er sich ja nochmal).

        Denn auch wenn das unmaskierte '&' im HTML selbstverständlich ein Fehler ist, sind die Browser nach meiner Erfahrung doch so "schlau", dass sie richtig erkennen, was der Schreiber vermutlich gemeint hat. Vorausgesetzt, das '&' ergibt mit den folgenden Zeichen nicht zufällig eine gültige Entity-Referenz.

        Ciao,
         Martin

        --
        Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(