के लिए एक यूनिकोड स्ट्रिंग एन्कोडिंग के बारे में मैं छिड़का प्रिंट बयान के बहुत सारे के साथ एक काफी बड़े अजगर 2.6 आवेदन किया है। मैं पूरे यूनिकोड तारों का उपयोग कर रहा हूं, और यह आमतौर पर बहुत अच्छा काम करता है। हालांकि, अगर मैं आवेदन (जैसे "myapp.py> output.txt") के उत्पादन अनुप्रेषित, तो मैं कभी-कभी त्रुटियां इस जैसे मिलती है:लिनक्स/पायथन: प्रिंट
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa1' in position 0: ordinal not in range(128)
मुझे लगता है कि अगर किसी को स्थापित किया है एक ही मुद्दा आता है ASCII के लिए उनके LOCALE। अब, मैं इस त्रुटि के कारण पूरी तरह से समझता हूं। मेरे यूनिकोड तारों में वर्ण हैं जो ASCII में एन्कोड करना संभव नहीं है। काफी उचित। लेकिन मैं अपने पायथन प्रोग्राम को कुछ समझने योग्य प्रिंट करने का प्रयास करने के लिए सबसे अच्छा प्रयास करना चाहता हूं, शायद संदिग्ध पात्रों को छोड़ना या उन्हें अपने यूनिकोड आईडी के साथ बदलना।
यह समस्या आम होना चाहिए ... इस समस्या से निपटने के लिए सबसे अच्छा तरीका क्या है? मैं एक समाधान पसंद करूंगा जो मुझे सादे पुराने "प्रिंट" का उपयोग करने की अनुमति देता है, लेकिन यदि आवश्यक हो तो मैं सभी घटनाओं को संशोधित कर सकता हूं।
पुनश्च: मैं अब इस समस्या का समाधान है। समाधान समाधान में से कोई भी नहीं था। मैंने http://wiki.python.org/moin/PrintFails पर दी गई विधि का उपयोग किया, जैसा कि क्रिसजे द्वारा टिप्पणियों में से एक में दिया गया है। यही है, मैं sys.stdout को एक रैपर के साथ प्रतिस्थापित करता हूं जो सही तर्कों के साथ यूनिकोड एन्कोड को कॉल करता है। बहुत अच्छी तरह से काम करता है।
"एएससीआईआईआई" लोकेल कैसे है? की –
संभव डुप्लिकेट [एक कमांड लाइन कार्यक्रम stdout के कूट के बारे में अनिश्चित हैं, तो क्या एन्कोडिंग चाहिए यह उत्पादन?] (http://stackoverflow.com/questions/5013599/if-a-command-line-program-is-unsure- की-stdouts एन्कोडिंग-क्या एन्कोडिंग-चाहिए-यह) –
यहाँ दो संकेत दिए गए कि साबित हो सकता है कर रहे हैं उपयोगी: http://wiki.python.org/moin/PrintFails - http://stackoverflow.com/questions/1473577/ लेखन-यूनिकोड-स्ट्रिंग्स-थ्रू-सीएस-स्टडआउट-इन-पायथन – ChrisJ