Ich mach hier mal weiter, da sich mit Delphi 2009 da ein neues Problem auftut.
Jetzt ist ein String ja ein UnicodeString, und das ist auch bei den Indys so. D.h. das UTF-kodierte wird automatisch zurück nach UTF-16 kodiert, da CustomHeaders jetzt UnicodeStrings auflistet. Das aber versteht unter Umständen (d.h. so alles jenseits des ASCII-Zeichensatzes) der Browser nicht mehr, und je nach Browser (IE, Opera, ..) werden unterschiedliche Ausweichnamen genommen, was ich aber vermeiden möchte.
Das UTF8 weglassen habe ich natürlich als erstes probiert, ändert aber nichts.
Ich muss also entweder Indy dazu bringen einen UTF8-String zu senden, oder den Brwoser dazu bringen, die UTF16-Kodierung zu verstehen. Jemand ne Idee wie man eines davon anstellen kann?
Edit: Wireshark zeigt als Dateinamen im Header lauter "?" an (als Bytes $3f, ist also kein Anzeigeproblem der Wireshark-GUI, sondern im Header stehen wirklich '?'). Das bedeutet: zwischen Reinpacken in die Liste und Lossenden per http wird der UnicodeString zu Ansi.
Edit2:
Sieht so aus, als wären da auch nur ASCII-Zeichen erlaubt. Und dass das vorher ging, war dann wohl ein netter Zufall, weil die gängigen Browser die UTF8-Kodierung anhand von Heuristiken(?) erkennen und dann den "richtigen" Dateinamen vorschlagen.
Für Vorschläge zum Umgehen dieser Problematik bin ich aber weiter offen.

We are, we were and will not be.