Ich programmierte vor kurzem ein PHP-Skript, das die Dateien aus einem bestimmten Verzeichnis auslesen und als Links auf einer Webseite ausgeben sollte, um die Dateien zum Herunterladen anzubieten. In meiner Testumgebung auf dem lokalen Windows®-PC wurden bei einigen Dateinamen komische Zeichen angezeigt. Und zwar bei allen Dateinamen, die Umlaute, Akzente oder Sonderzeichen enthielten. Auf dem Webserver, der unter einem Linux-Betriebssystem läuft, trat dieses Problem nicht auf.
Nach langer Suche fand ich bei ComputerBase den Hinweis, dass es wohl daran liegt, dass Windows Dateinamen nicht in UTF-8 kodiert, sondern in CP-1252 oder ISO-8859-1. Mein Skript war allerdings in UTF-8 gespeichert (wie es ja üblich ist), was zu dem Zeichensalat führen musste.
Um von vornherein Problemen aus dem Weg zu gehen, verwendet man in Dateinamen fürs Web am besten gar keine Umlaute, Akzente, Leerzeichen und Sonderzeichen. Und wenn Dateien automatisch chronologisch sortiert werden sollen, benutzt man natürlich ein immer gleich bleibendes Dateinamensschema, also zum Beispiel katzenfoto-2016-03.pdf, katzenfoto-2016-04.pdf und so weiter, und nicht ein Mischmasch wie etwa KATZENFOTO März 2016.pdf und Katzenfoto 04.2016.pdf oder ähnlich, noch zumal unter UNIX® und Linux Groß- und Kleinschreibung unterschieden wird, anders als unter Windows. »Schön« sind natürlich auch Namen, die keinerlei Hinweis auf den Inhalt der Datei geben, wie etwa P3290153.JPG. Doch genau solche Dateien mit Namen, die durcheinander sind wie Kraut und Rüben, erhalte ich immer wieder von Kunden. Denn sie wissen nicht, was sie tun.