मुझे HTTP शीर्षलेखों में समस्या है, वे एएससीआईआईआई में एन्कोड किए गए हैं और मैं फ़ाइलों को डाउनलोड करने के लिए एक दृश्य प्रदान करना चाहता हूं जो नाम AS ASII हो सकते हैं।HTTP हेडर के लिए यूटीएफ 8 फ़ाइल नाम को एन्कोड कैसे करें? (पायथन, डीजेगो)
response['Content-Disposition'] = 'attachment; filename="%s"' % (vo.filename.encode("ASCII","replace"),)
मैं स्थिर गैर ASCII फ़ाइल नाम के साथ लेकिन इस मामले में एक ही मुद्दे के लिए की सेवा फ़ाइलों का उपयोग करने के लिए फाइल सिस्टम के साथ एक समस्या होगी नहीं करना चाहते हैं और यह फ़ाइल नाम एन्कोडिंग है। (मुझे लक्ष्य ओएस पता नहीं है।)
मैंने पहले से ही urllib.quote() की कोशिश की है, लेकिन यह KeyError अपवाद उठाता है।
संभवतः मैं कुछ गलत कर रहा हूं लेकिन शायद यह असंभव है।
मुझे एहसास है कि मुझे देर हो चुकी है, लेकिन ... KeyError अपवाद वास्तव में मुझे खराब करता है। मेरा मतलब यह नहीं है कि "हर बार थोड़ी देर में मैं इस समस्या में भाग लेता हूं," मेरा मतलब है, मैंने इस साल पहले ठीक करने के लिए पायथन को एक पैच जमा किया था, थोड़ी देर के लिए तर्क दिया, फिर फैसला किया कि वे पाइथन 2 को बदलना नहीं चाहते थे। पाइथन 3 में इस समस्या को ठीक किया, लेकिन उन्होंने कभी भी पायथन 2 में अपना पैच स्वीकार नहीं किया। कार्य-आसपास पहले .encode ('utf-8') है, और फिर urllib.quote का उपयोग करें। लेकिन यह यूआरएल-एन्कोडिंग के लिए है जो इन्हें हेडर में रखने का मानक तरीका नहीं है। – mgiuca