2016-11-18 4 views
3

Wir haben eine .Net Web-Anwendung, wo der Benutzer Dateien herunterladen kann. Der Dateiname die Dateien können dänische Zeichen enthalten kann æ, ø und å und vielleicht einige andere Zeichen einiger foreigh Sprache.Unterschied zwischen ContentDispositionHeaderValue.FileName und ContentDispositionHeaderValue.FileNameStar

Wir verwenden die Klasse HttpResponseMessage die Datei zu senden, wo ContentDispositionHeaderValue als „Anlage“ initialisiert wird.

jedoch die

FileName 

Eigenschaft zuweisen nicht für die dänischen Zeichen in IE funktioniert, funktioniert aber, wenn ich den Namen der Datei

FileNameStar 

wo der Dateiname wird automatisch verschlüsselt in das richtige Format zuweisen .

So funktioniert das:

Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") 
{ 
    FileNameStar = "filename with æ ø and å" 
}; 

Ich kann jedoch keine Dokumentation finden, warum es automatisch kodiert wird, und welche Browser diese Funktion unterstützen.

Suche im Internet, gibt Vorschläge, dass ich die Zeichenfolge kodieren sollte, bevor Sie es der FileNamestar-Eigenschaft zuweisen. Aber das ist nicht notwendig, wie ich in der http-Trace sehen kann, dass es richtig codiert ist.

Haben alle gängigen Browser unterstützt? Und kann ich sicher sein, dass die Dateinamen korrekt codiert sind?

Dank Jihad

Antwort

3

von here Genommen:

Die FileNameStar Eigenschaft IETF RFC 5987-Codierung verwendet. Die Eigenschaften FileName und FileNameStar unterscheiden sich nur dadurch, dass FileNameStar die in IETF RFC 5987 definierte Codierung verwendet und die Verwendung von Zeichen ermöglicht, die nicht im Zeichensatz ISO-8859-1 enthalten sind.

+0

Dank. Aber welche Browser unterstützen dies, und kann ich sowohl FileName als auch FileNameStar in derselben Anfrage senden? –

+0

Die meisten Browser unterstützen dies. Wenn Ihr Dateiname ist ISO-8859-1-Zeichensatz dann Filenamen verwenden, wenn es UTF-Zeichen enthält FileNameStar verwenden verwenden. Wenn beide FileNameStar verwendet werden können, funktioniert es in beiden Fällen. – Jonas