Ho un problema con le intestazioni HTTP, sono codificate in ASCII e voglio fornire una vista per scaricare i file che i nomi possono essere non ASCII.Come codificare il nome file UTF8 per le intestazioni HTTP? (Python, Django)
response['Content-Disposition'] = 'attachment; filename="%s"' % (vo.filename.encode("ASCII","replace"),)
Non voglio usare file statici che servono per lo stesso problema con i nomi di file non ASCII ma in questo caso ci sarebbe un problema con il sistema di file ed è il nome del file di codifica. (Non conosco il sistema operativo di destinazione.)
Ho già provato urllib.quote(), ma solleva un'eccezione KeyError.
Forse sto facendo qualcosa di sbagliato ma forse è impossibile.
Mi rendo conto che sono in ritardo di anni, ma ... l'eccezione KeyError mi infastidisce davvero. Non intendo solo "ogni tanto mi imbatto in questo problema", voglio dire, ho inviato una patch a Python per risolvere questo problema anni fa, ho discusso per un po ', poi ho deciso che non volevo cambiare Python 2. I ha risolto questo problema in Python 3, ma non hanno mai accettato la mia patch in Python 2. La soluzione è prima di .encode ('utf-8'), quindi utilizzare urllib.quote. Ma questo è per la codifica dell'URL che non è il modo standard per inserire queste intestazioni. – mgiuca