fackel: Element IMG: UTF-8-Sonderzeichen in der URI

Beitrag lesen

Hallo,

Das interessiert doch aber den Server nicht.

Da ist kein Server im Spiel. Ich stecke das HTML direkt in den Firefox.

An wen geht denn die Anfrage nach der Ressource?

An das lokale Dateisystem. Das Szenario ist hier wirklich lokales Öffnen der HTML-Datei im Browser.

Und selbst wenn ein Server im Spiel wäre: Er kann doch die URIs nicht mach gutdünken interpretieren, sondern sollte sich doch an das Encoding des Dokumentes halten, das er übergeben bekommt.

Der Server bekommt doch kein Dokument übergeben, sondern nur einen Request nach einer Ressource.

Die Ressource muss aber als URL spezifiziert sein, und diese URL muss ja die Sonderzeichen in irgend einer Kodierung darstellen. Woher weiß also der Server, in welcher Kodierung das sein soll, was da ankommt?

Es könnte doch sein, dass ein und die selbe Darstellung in der URL zu verschiedenen echten Dateinamen im Dateisystem führt, je nachdem welche Kodierung angewendet wird (das trifft insbesondere bei 1-Byte-Kodierungen zu: z.B. ist %E4 in der Kodierung ISO-8859-1 ein "ä", in der Kodierung ISO-8859-5 (kyrillisch) ein "д", und das macht schon einen Unterschied, ob die Datei "bläd.jpg" oder "blдd.jpg" heißt, insbesondere wenn es beide Dateien gleichzeitig gibt).

Ein und der selbe URL kann nicht zu verschiedenen Ressourcen führen.

Ich denke doch, wenn die Kodierung der URL (etwa bl%E4d.jpg) implizit angenommen und nicht irgendwie explizit festgelegt wird. Und explizit festgelegt kann sie doch nur durch das umgebende Dokument werden, d.h. bzw. der Browser müsste beim Anfordern einer Ressource dem Server mitteilen, in welcher Kodierung die URL ist. Gibt es soetwas überhaupt? Über Einzelheiten des HTTP-Protokolls oder das ganze Server-Gedöns weiß ich zu wenig.

Und wenn der Server den Request bekommt, weiß er nichts von irgendwelchen vorher auf dem Client eventuell mal angezeigten Dokumenten, die in irgendeiner Kodierung vorlagen.

b) Es ist kein Server zwischengeschaltet, der die URIs evtl. hinbiegt oder "besser" auflösen kann.

Von wo forderst du die Ressourcen dann an?
Lädst du lediglich Dateien aus dem lokalen Dateisystem des Clientrechners?

Jap.

c) Was will ich #1: Ich suche nach einem Weg, Sonderzeichen in SRC in IMG zu verwenden, so dass HTML-Browser zuverlässig damit umgehen können.

Am besten verwendest du sie gar nicht.

Beim aktuellen Erkenntnisstand zum Thema URLs & Kodierung würde ich das sehr gerne. Die Option hab ich als Entwickler aber leider nicht, weil die Autoren der (XML-)Dokumente, aus denen das HTML entstehen soll, die Dateinamen für Bilder eben manchmal mit Umlauten/Sonderzeichen spicken.

Und wenn doch - dann musst du natürlich die Kodierung verwenden, die im Dateisystem (lokal oder des Servers) für die Dateinamen benutzt wird - und die Darstellung des Dateinamens in dieser Kodierung URL-gerecht kodieren.

Das ist leider auch problematisch, weil ich es leider wiederum nicht im Griff habe, wo dieses HTML zur Anzeige kommt: hier in Europa oder in Fernost, oder auf CD.

Danke für die Infos,
FF