Wie benutzt man Unicode-Zeichen in S3s Antwort-Content-Disposition Header?

8

Wir verwenden diesen Code, um Anfragen zu generieren und den Dateinamen für den Download festzulegen:

%Vor%

Dies erzeugt den folgenden Link:

%Vor%

Welche gibt diesen Fehler:

%Vor%

Wie können wir Nicht-ISO-8859-1-Zeichen wie Unicode im Header der Antwort-Content-Disposition verwenden?

    
ECC-Dan 22.08.2013, 19:46
quelle

2 Antworten

4

Wie in diese StackOverflow-Antwort , es gibt keine interoperable Möglichkeit, Nicht-ASCII-Namen in Content-Disposition zu codieren. Browserkompatibilität ist ein Chaos.

Die Art, wie wir es so gemacht haben, dass es in allen Browsern funktioniert, besteht darin, alle Nicht-ISO-8859-1-Zeichen durch "-" zu ersetzen. Hier ist der Code:

%Vor%

Nach Alex Couper's Antwort fand ich einen Weg in .net, um nur nicht-ASCII-Zeichen zu codieren, indem ich eine interne Methode in HttpEncoder aufruft

Der Aufruf interner Funktionen wird nicht empfohlen, da sie sich in zukünftigen Versionen des Frameworks ändern können! Außerdem funktioniert das nicht in allen oben genannten Browsern. Ich lasse das hier für den Fall, dass jemand das unbedingt tun muss.

%Vor%     
ECC-Dan 21.02.2014, 17:03
quelle
5

Ich hatte dieses Problem und löste es, indem ich den Unicode-String korrekt codierte.

Ich war in Python Boto Land:

%Vor%

Verwenden Sie dann diese codierte Zeichenfolge als Wert für den Header response-content-disposition.

In Java glaube ich, dass Sie das gleiche Ergebnis erzielen können mit:

%Vor%

Hoffe das hilft jemand anderem irgendwann!

    
Alex Couper 21.02.2014 12:08
quelle