2012-04-25 11 views
5

Possible Duplicate:
Python, Unicode, and the Windows consoleपायथन: फेंकना कुछ UTF-8 खिड़कियों सांत्वना

मैं फ़ाइल से कुछ तार पढ़ सकते हैं और जब मैं खिड़कियों कंसोल में इन utf-8 तार मुद्रित करने के लिए प्रयास करते हैं, मैं त्रुटि

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128) 

पाने के लिए स्ट्रिंग मैं "chcp 65001" साथ utf-8 के लिए सांत्वना एन्कोडिंग सेट लेकिन तुलना करने की कोशिश की है मैं की तुलना में इस त्रुटि संदेश मिलता है

LookupError: unknown encoding: cp65001 
+6

पायथन 3.3 में फिक्स्ड। –

+1

क्या अजगर 2.7 के लिए कुछ कामकाज है? – Meloun

+0

यह सवाल कुछ बार आया है। यहां एक उदाहरण है जो काम कर सकता है या नहीं कर सकता है: http://stackoverflow.com/questions/5419/python-unicode-and-the-windows-console –

उत्तर

3

मैं आपको स्टैक ओवरफ्लो पर समान प्रश्नों की जांच करने की सलाह देता हूं, उनमें से कई हैं। (उदाहरण के UTF8 के लिए) किसी भी एन्कोडिंग लेकिन डिकोड तार में खिड़कियों कंसोल, उत्पादन यूनिकोड स्ट्रिंग्स के लिए

  • यूनिकोड फ़ाइल से

    1. पढ़ने:

      वैसे भी, आप इसे इस तरह से कर सकते हैं। आपको इस विशेष मामले में एन्कोड करने की आवश्यकता नहीं है। आपको कंसोल एन्कोडिंग सेट करने की आवश्यकता नहीं है, आउटपुट टेक्स्ट स्वचालित रूप से स्वचालित रूप से एन्कोड किया जाएगा।

    फ़ाइलों के लिए, आपको कोडेक्स मॉड्यूल का उपयोग करने या उचित एन्कोडिंग में एन्कोड करने की आवश्यकता है।

  • +0

    अच्छी सलाह है, लेकिन यह ध्यान दिया जाना चाहिए कि यदि आप कंसोल पर एकाधिक भाषा समर्थन की उम्मीद कर रहे हैं तो यह इसे प्रदान नहीं करेगा। –

    +0

    क्या यह वास्तव में आपके लिए काम करता है? मुझे फ़ाइल से पहला बाइट पढ़ने से पहले 'लुकअप त्रुटि: अज्ञात एन्कोडिंग: cp65001' मिलता है। यह स्ट्रिंग सामग्री से पूरी तरह से असंबंधित लगता है। ऐसा लगता है जैसे पाइथन को 'cp65001' की समझ की कमी होगी, लेकिन फिर भी इस तरह से प्रयास करें, और यह तब तक काम नहीं करेगा जब तक कि आप इसके आसपास काम न करें या पायथन 3.3 का उपयोग न करें, अगर मुझे लगता है। – n611x007

    +1

    @naxa हाँ, अजगर cp65001 समझ में नहीं आता है। 65001 तक chcp मत करो। या कम से कम पायथन कॉल करने से पहले 'सेट PYTHONIOENCODING = utf-8' का उपयोग करें। यह भी देखें https://stackoverflow.com/questions/878972/windows-cmd-encoding-change-causes-python-crash – Jiri

    1

    प्रिंट कमांड कंसोल द्वारा समर्थित एन्कोडिंग में यूनिकोड स्ट्रिंग को परिवर्तित करने का प्रयास करता है। आज़माएं:

    >>> import sys 
    >>> sys.stdout.encoding 
    'cp852' 
    

    यह आपको दिखाता है कि कंसोल का समर्थन एन्कोडिंग (पाइथन को समर्थित करने के लिए क्या कहा जाता है)। यदि चरित्र को उस एन्कोडिंग में परिवर्तित नहीं किया जा सकता है, तो इसे सही तरीके से प्रदर्शित करने का कोई तरीका नहीं है।