(2) Umlaut als UTF-8, kein Escaping (nach dem Buchstaben des Gesetzes ist das eigentlich falsch, weil eine URI nur ASCII-Zeichen enthalten soll) - Bild wird aber trotzdem angezeigt!
<img src="bläd.jpg" alt="-NOT FOUND-" width="340">Warum geht 2, aber nicht 1, obwohl doch beides UTF-8 darstellt und auch der im HTML angegebenen Kodierung entspricht?
Dein Browser ist wohl deiner Meinung, dass das nur ASCII hingehört - also wandelt er das UTF-8 kodierte Zeichen in ASCII, und URL-encoded es dann, weil du's ja offensichtlich "vergessen" hast :-)
Wie soll das UTF-8 kodierte Zeichen in ASCII umgewandelt werden? ASCII hat keine Möglichkeit, mein "ä" zu fassen. Das URL-encoden (das ich in Fall 2 absichtlich "vergessen" habe) - wenn das der Browser intern denn machen würde - würde aber zur Darstellung von Fall 1 führen. Und wie dort festgestellt, wird das Bild (in Fall 1) NICHT angezeigt. Im Gegensatz dazu sehe ich aber in Fall 2 das Bild.
(3) Umlaut in ISO-8859-1-Kodierung und escaped - Bild wird angezeigt (obwohl das Dokument selbst in UTF-8 kodiert ist)
<img src="bl%E4d.jpg">Warum geht 3 überhaupt? Das HTML ist doch UTF-8!
Das interessiert doch aber den Server nicht.
Da ist kein Server im Spiel. Ich stecke das HTML direkt in den Firefox.
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. 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).
Der ASCII-Wert des Zeichens wurde URL-gerecht kodiert, und diese kodierte Darstelung enthält nur die Zeichen %, E und 4. Die sind aber auch in UTF-8 identisch mit der Darstellung in ASCII.
gruß,
wahsaga
Dank für die Antwort. Leider ist meine Verwirrung damit noch nicht beseitigt. Vielleicht hab ich deine Antworten aber auch missverstanden.
Nur zur Klarstellung:
a) Die Varianten 2 und 3 hab ich mir "ausgedacht", nachdem die in meinen Augen saubere Variante 1 nicht funktioniert.
b) Es ist kein Server zwischengeschaltet, der die URIs evtl. hinbiegt oder "besser" auflösen kann.
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.
d) Was will ich #2: Ich würde gerne verstehen, warum Firefox (und mit ihm IE) sich so verhalten, wie sie sich verhalten.
FF