Ich habe ein Problem mit einem Dateidownload, bei dem der Download alle Leerzeichen durch Unterstriche ersetzt.Warum gibt HttpUtility.UrlEncode (HttpUtility.UrlDecode ("% 20")) + anstelle von% 20 zurück?
Im Grunde ich bin immer hier ein Problem:
Response.AddHeader("Content-Disposition",
"attachment; filename=" + someFileName);
Das Problem ist, dass, wenn someFileName einen Raum darin, wie „diesen out.txt überprüfen“ hatte dann würde der Benutzer zum Download aufgefordert werden, „check_this_out .txt".
Ich dachte, die beste Option, um die Dateinamen urlencode wäre, damit ich
versuchteHttpUtility.UrlEncode(someFileName);
Aber es ist die Räume mit Pluszeichen zu ersetzen, die mich ratlos. Also habe ich versucht, nur
HttpUtility.UrlEncode(HttpUtility.UrlDecode("%20"))
und die Decodierung funktioniert und gibt mir einen Raum, aber die kodieren nimmt den Platz und dann gibt mir das Pluszeichen wieder.
Was fehlt mir hier, ist das korrekt? Wenn ja, wie sollte ich Räume in% 20 korrekt codieren, was ich brauche.
Danke, ich habe das in einem anderen Artikel an anderer Stelle mit der gleichen Lösung gefunden wie Sie. Ich werde wahrscheinlich am Ende das tun müssen, aber es fühlt sich einfach falsch/schmutzig an. Naja. – Joseph