Moin,
Auf dem Windows Dateisystem befindet sich diese Dateien.
Das+ist~mit@sönderZüchenß&.ps
Eng_für_ProjVA_2014.pdfNach dem Uplaod sieht es dann auf der Seite so aus:
das erste Beispiel, in dem aus dem u anscheinened uÌ wird, kommt mir tatsächlich etwas eigenartig vor. Das zweite sieht aber nach einem korrekt in UTF-8 codierten Namen aus, der dann aber falsch als ISO-8859-x interpretiert wird. Du hast offensichtlich keine durchgängige Verarbeitung in UTF-8.
Nochmals um was es geht:
Ein Anwender wählte eine Datei (PDF, TXT, Doc, PS ...) von seinem lokalen Windows System aus und lädt sie über eine Webseite hoch.
Ja, und auf die im Dateisystem verwendete Codierung hast du keinen Einfluss. Das ist leider eine Schwachstelle in der Kette. Allerdings ist das IMO nicht einmal das Problem. Das Grundproblem ist wohl eher, dass irgendein Glied in deiner Verarbeitungskette die Darstellung von Umlauten als Basiszeichen + Combining Diaresis, die in Unicode als Variante erlaubt ist, nicht beherrscht.
Die Webseite ist mit utf-8 kodiert;
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Ist sie das wirklich, oder steht das nur so drin?
Der Dateiname (es geht nur um den Dateinamen) wird in einem <select> angezeigt.
Ohne dem utf8_decode klappt zwar der Upload, aber die Dateinamen sehen bei Umlauten und Sonderzeichen wie oben aus.
Das deutet darauf hin, dass deine Webseite in Wirklichkeit eben nicht UTF-8 benutzt!
Bisher klappte alles gut soweit bis jetzt diese Datei von einem MAC kam. Wie gesagt: Wenn man bei dieser Datei mit dem Windows Explorer das original ü löscht und dann neu schreibt ...
... dann wird u + Combining Diaresis (\U+0075, \U+0308) in die "homogene" Darstellung (U+00FC) umgewandelt. Beides sind gültige Unicode-Darstellungen des Zeichens ü.
... geht es auch wieder mit utf8_decode.
Und das solltest du ausbessern: Wenn durchgängig überall dieselbe Codierung verwendet wird (z.B. UTF-8), ist ein solches Hin- und Herwandeln, bei dem ja auch Information verlorengehen kann, nicht nötig. Wahrscheinlich ist das auch die Ursache für das uÌ aus dem oben gezeigten Beispiel.
So long,
Martin
Kriege kennen keinen Gewinner. Es gibt nur Verlierer und das sind wir.
(Hotti)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(