Canti: Problem mit umlauten (links zu dateien fehlerhaft)

Hallo,

Ich habe ein kleines Problem.
Und zwar lasse ich die Ordnernamen auf einem Server von einer PHP datei auslesen und anzeigen.

Auf der Seite werden die Ordnernamen dann als Namen des Photoalbums angezeigt.

Das ganze funktioniert mittlerweile richtig gut, nur habe ich ein Problem.

Wenn ein ordner einen umlaut im namen trägt bringt das den IE7 leicht aus dem konzept und er erstellt "falsche" links zu den bilder (man sieht nur diese roten "X"e)

Das erste was ich dagegen getan habe war die Seite auf utf-8 einzustellen, aber das hatte überhaupt nichts geändert (merkwürdiger weise wurden auch normale umlaute die ich testweise eingefügt habe auch nicht dargestellt, sollte nicht eher das gegenteil der fall sein?)
Danach habe ich "iso-8859-1" eingestellt, nun werden die Umlaute richtig angezeigt, leider aber erscheinen immernoch rote "x"e bei den vorschaubildern des IE7! (Firefox zeigt alles richtig)

Beispiel:

Der Ordner auf dem Server heißt "überraschung test 9"

Dann wäre der richtige link der funktioniert
http://www.meineseite.de/fotos/%fcberraschung%20test%209/070505-0066.JPG

Der IE7 meint aber diesen link nehmen zu müssen:
http://www.meineseite.de/fotos/überraschung%20test%209/070505-0066.JPG

Wie kann ich das berichtigen sodas in allen Browsern die Links, sowie die Ordnernamen richtig angezeigt werden?

  1. Der Ordner auf dem Server heißt "überraschung test 9"

    Wie kann ich das berichtigen sodas in allen Browsern die Links, sowie die Ordnernamen richtig angezeigt werden?

    Falscher Ansatz.

    Ordnernamen wie auch Dateinamen dürfen keine Leerzeichen und keine Umlaute enthalten. Wer sich daran nicht hält, bekommt Probleme und bekommt die nie ganz weg.

    1. Hm das ist schlecht.
      Ich wollte die Gallerie ziehmlich simpelt halten, also ohne Datenbank oder ähnliches.

      Einfach Ordner mit Bildern hochladen, und die Gallerie macht den rest.

      Also gibt es da absolut keinen anderen weg als die Ordnernamen umzubennen?

      Wenn ich Directory listing anschalte und so auf den ordner zugreife, zeigt mir diese seite ja auch Ordner mit umlauten an, also scheint es technisch ja möglich zu sein.

      Das es vieleicht keine optimale lösung ist, und das man mit irgendwelchen anderen Programmiersprachen dann probleme bekommt ist mir eigentlich erstmal egal, weil die Gallerie in ihrer Funktion so ansich eh nicht weiterentwickelt wird.

      Anders gesagt, solange die Umlautanzeige der ordner geht, ist mir praktisch jeder andere malus recht.

      1. Ist doch eig. kein Hals und Beinbruch.
        Nutz halt einfach String-Funktionen oder wie die heißen... entfern alle Leerzeichen und ersetz die Umlaute durch "ue", "ae", "oe".
        Dann brauchste auch keinen Datenbank und musst nur den Link ohne Leerzeichen und mit ersetzten Umlauten schreine.
        Gruß Delfried

        1. Wie mache ich das mit den Strings genau?
          Also die Ordnernamen sind ja schon in einer Variablen gespeichert, was müsste ich mit der jetzt noch zusätzlich anstellen?

          1. Hi,
            such mal nach der Funktion strreplace.
            Ich glaube so heißt die zumindest.
            Mit dieser kannst du bestimmte Sachene ersetzen.
            Diese kannst du ja 4 mal drauf anwenden:
            3 * für jeweils ä,ö und ü die du durch ae, oe und ue ersetzt.
            1 * für Leerzeichen, welches du doch nichts bzw. i-was anderes ersetzt.
            Gruß Delfried

  2. Hi,

    Wenn ein ordner einen umlaut im namen trägt bringt das den IE7 leicht aus dem konzept und er erstellt "falsche" links zu den bilder (man sieht nur diese roten "X"e)

    Die sicherste Variante: verwende in Dateinamen nur Buchstaben a-z, Ziffern 0-9, Unterstrich und Punkt.
    Alles andere führt erfahrungsgemäß irgendwann zu Problemen, wenn die Dateinamen in Urls oder Shellscripts oder sonstwo benutzt werden müssen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  3. Hi,

    Wenn ein ordner einen umlaut im namen trägt bringt das den IE7 leicht aus dem konzept und er erstellt "falsche" links zu den bilder (man sieht nur diese roten "X"e)

    Die Links/URLs soll nicht der Browser "erstellen", sondern das hast *du* in deinem Script zu machen.

    Der Ordner auf dem Server heißt "überraschung test 9"

    Dann wäre der richtige link der funktioniert
    http://www.meineseite.de/fotos/%fcberraschung%20test%209/070505-0066.JPG

    Der IE7 meint aber diesen link nehmen zu müssen:
    http://www.meineseite.de/fotos/überraschung%20test%209/070505-0066.JPG

    Und welche Adresse hast du gemeint dem IE "geben zu muessen"?

    Wenn du dich nicht im geringsten um eine URL-gerechte Kodierung gekuemmert hast, musst du dich nicht wundern, wenn der Browser beim selber raten leider falsch raet.

    urlencode() auf Ordner- und Dateinamen anzuwenden, ist das Mindeste.
    Ob's damit "funzt", kann aber immer noch von der verwendeten Zeichenkodierung abhaengen.
    Umlaute "in UTF-8", wenn das Dateisystem des Servers irgendeine andere Kodierung verwendet, koennen immer noch problematisch sein.
    Am besten also wirklich auf die Umlaute verzichten, bzw. wie von Delfried vorgeschlagen schon beim Anlegen des Ordners/der Datei durch harmlose Variante ersetzen.

    MfG ChrisB

    1. Ich kümmer mich ja in dem Rahmen um die URLs wie ich es kann.

      Bis dato habe ich einfach den Ordnernamen ausgelesen, in eine variable gespeichert und anschließend einen link ala "href='/test/$pfad'" angegeben.

      Ich habe nicht damit gerechnet das sowas zu problemen führen kann.

      Jetzt werd ich mir erstmal das urlencode() ansehen