यह प्रश्न that one के दुष्प्रभाव पर आधारित है।पीप्रिंट आउटपुट को एन्कोड/डीकोड करने में असमर्थ
मेरे .py
फ़ाइलें मैं HttpResponse
का उपयोग API दस्तावेज़ वापस जाने के लिए, सभी पहली पंक्ति पर # -*- coding: utf-8 -*-
एन्कोडिंग definer है, मेरी api.py
जैसे मैं संबंधित सवाल पर उल्लेख के रूप में कर रहे हैं। जब से मैं द्वारा एन्कोडिंग परिभाषित:
HttpResponse(cy_content, content_type='text/plain; charset=utf-8')
सब कुछ ठीक है, और जब मैं अपने एपीआई सेवा को कॉल, वहाँ को छोड़कर कोई एन्कोडिंग समस्याओं स्ट्रिंग pprint
द्वारा एक शब्दकोश से गठित जब से मैं तुर्की का उपयोग कर रहा हैं मेरी dict में कुछ मूल्यों में वर्ण, pprint, unichr
समकक्ष करने के लिए उन्हें धर्मान्तरित की तरह:
API_STATUS = {
1: 'müşteri',
2: 'some other status message'
}
my_str = 'Here is the documentation part that contains Turkish chars like işüğçö'
my_str += pprint.pformat(API_STATUS, indent=4, width=1)
return HttpRespopnse(my_str, content_type='text/plain; charset=utf-8')
और मेरे सादा पाठ उत्पादन की तरह है:
Here is the documentation part that contains Turkish chars like işüğçö
{
1: 'm\xc3\xbc\xc5\x9fteri',
2: 'some other status message'
}
मैं डिकोड करने के लिए या विभिन्न एन्कोडिंग को एनकोड pprint उत्पादन, कोई सफलता के साथ प्रयास करें ... क्या सबसे अच्छा अभ्यास इस समस्या
धन्यवाद बहुत कुछ, एक आकर्षण की तरह काम करता है (: – FallenAngel
अगर, मेरे जैसे, आप इसे 'pformat' (pprint के बजाए) के साथ उपयोग करने की कोशिश कर रहे हैं और परिणामी स्ट्रिंग को एक टेम्पलेटिंग इंजन जैसे' जिंज 2 'में भेज दें, यह आपको देगा एक 'यूनिकोडडेकोड एरर', जिसे आप कॉल करके हल कर सकते हैं (इस उत्तर की शर्तों में) 'यूनिकोड (माईप्रेटी प्रिंटर()। pformat (डी),' utf-8 ') ' – fiatjaf
क्या आप अपने पीप्रिंट को प्रारूप सेट विकल्प के साथ लपेट सकते हैं पीईपीआई, यह सहायक होगा। –