Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

PHP: Bilder anzeigen, Dateiname enthält Umlaute

uspc / 11 Antworten / Flachansicht Nickles

Hallo, ich möchte mit img src ein Bild auf einer Website darstellen. Der Dateiname enthält ein Umlaut, das soll auch so bleiben. In meiner Scriptdatei ist alles in UTF-8 getrimmt.

Im Head hab eich  charset=utf-8, die Scriptdatei ist UTF-8 kodiert, dann lese ich die Dateien aus einem Verzeichnis aus (Linux-Server):

while ($quelle = readDir($handle)) {         // Verzeichnis auslesen 

in $quelle stehen noch die komischen Zeichen. Das ändere ich mit:
  $datei = utf8_encode($quelle);

Jetzt hat $datei zeigt die korrekten Zeichen, also zB. Müller.jpg

Genauso heisst die Bilddatei. Das Bild wird aber nicht angezeigt. Ohne Umlaute ist alles ok. Der Dateiname wird sogar mit title='$datei'  korrekt angezeigt, also mit ü.   Ich habe schon versucht, alle Dateien mit str_replace("ü", "ue", $datei) umzubenennen, das geht nicht. Wäre auch nicht die Ideallösung, das die Namen der Bild-Dateien erhalten bleiben sollen.

Was habe ich nicht bedacht?  Vielen Dank! uspc

bei Antwort benachrichtigen
uspc Borlander „URL-Encoding für die Pfadangebe verwendet? Da könnte es ...“
Optionen

Hallo Borlander, ich habe $var = utf8_encode($var) gesetzt. Der Dateiname wird sogar im title='$var' mit Umlauten korrekt angezeigt. Auch den ganze Pfad schon mit $pfad = utf8_encode($pfad) gesetzt, irgendwie muss es doch gehen? Ganz Google ist voll mit Kommentaren wie: Bitte umbenennen... Diese Lösung habe ich fertig, da kommen aber unsere Leute nicht klar, die Dateinamen sollen so bleiben. Ferner müsste ich Schreibrechte auf dem Server einrichten... Übrigens dass es geht beweist web.de, Bildergallerie.

Der Stoplerstein muss <img src='$var'> sein. Weil im gleichen Tag geht ja wie gesagt title: <img src='$var' title='$var'>  In $var wird also "Blümchen.jpg" korrekt erkannt. Zeigt nur kein Bild.

Was kann es noch sein? Danke, Viele Grüße, uspc

bei Antwort benachrichtigen