Mam problem z nagłówkami HTTP, są one kodowane w ASCII i chcę udostępnić widok do pobierania plików, których nazwy mogą nie być ASCII.Jak zakodować nazwę pliku UTF8 dla nagłówków HTTP? (Python, Django)
response['Content-Disposition'] = 'attachment; filename="%s"' % (vo.filename.encode("ASCII","replace"),)
Nie chcę używać statycznych plików służący do tego samego problemu z nazwami plików spoza ASCII, ale w tym przypadku nie byłoby problemu z systemem plików i to kodowanie nazw plików. (Nie wiem, docelowego os.)
Próbowałem już urllib.quote(), ale to podnosi wyjątek KeyError.
Prawdopodobnie robię coś złego, ale może to niemożliwe.
Zdaję sobie sprawę, że jestem spóźniona, ale ... wyjątek KeyError naprawdę mnie trapi. Nie chodzi mi tylko o to, że "od czasu do czasu wpadam na ten problem", mam na myśli, że przesłałem łatkę do Pythona, aby naprawić to wiele lat temu, argumentowałem przez chwilę, po czym zdecydowałem, że nie chcą zmieniać Pythona 2. I naprawiłem ten problem w Pythonie 3, ale nigdy nie zaakceptowałem mojej poprawki w Pythonie 2. Najpierw należy obejść kod .egode ("utf-8"), a następnie użyć adresu urllib.quote. Ale jest to kodowanie URL, które nie jest standardowym sposobem umieszczania ich w nagłówkach. – mgiuca