Umgang mit anderen Zeichentabellen in PHP

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von DieTa, 19.03.2007.

  1. DieTa

    DieTa Thread Starter MacUser Mitglied

    Beiträge:
    3.278
    Zustimmungen:
    30
    MacUser seit:
    17.09.2003
    Hallo,

    ich möchte es den Usern gerne erlauben, auch Dateinamen in Ihrer Heimatsprache auszuwählen und nicht vorher jede Datei umbenennen zu müssen.

    Das Problem beginnt schon mit jemanden, der eine Datei mit dem Namen "Hallo + 123üöä.jpg" hochlädt. Hier könnte ich zwar per Stringreplace die "Fremdzeichen" rausholen, aber spätestens wenn der User aus China, Japan oder Arabien kommt, habe ich ein Problem.

    Ich dachte zunächst mit der utf8_encode-Funktion komme ich weiter, aber bei der japanischen Grafikdatei bekomme ich dann nur noch 28????????.jpg angezeigt, was vom Server nicht verarbeitbar ist.

    Wie könnte ich das Problem lösen?


    Gruß
    Dennis



    EDIT:
    Ok - ich habe zwar keine RICHTIGE Lösung gefunden, aber ein Workaround :)

    Für mich sieht das so aus:

    1. $dateiname = str_replace(" ", "", $datein);

    Leerzeichen entfernen


    2. $dateiname = mb_convert_encoding($dateiname,"HTML-ENTITIES","auto");

    Alle nicht Latin-Zeichen in ? umwandeln (klappt zumindest bei Tests mit Kyrillisch und Japanisch


    3. $dateiname = str_replace(array('<', '>', '', '/', '=', '+', '*', '#', '?', '§', '&', '(', ')'), "", $dateiname);

    Alle Sonderzeichen werden rausgefiltert. Dabei wird das ? auch schlichtweg gelöscht.
    Da eh eine Unique-ID vorgehängt wird, macht es nichts, dass der Dateiname selber bei rein (z.B.) kyrillischen Zeichensätzen verschwindet.
     
    Zuletzt bearbeitet: 19.03.2007
  2. Sojus

    Sojus MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
Die Seite wird geladen...
Ähnliche Themen - Umgang anderen Zeichentabellen
  1. marian
    Antworten:
    16
    Aufrufe:
    5.563
  2. maceis
    Antworten:
    16
    Aufrufe:
    1.518