2010-04-27 8 views
9

अगर मैं इस तरह के मध्य बिंदु के रूप में एक यूनिकोड चरित्र पेस्ट करने के लिए प्रयास करें:मैक ओएस एक्स टर्मिनल.एप पर पाइथन इंटरप्रेटर में एक यूनिकोड चरित्र क्यों नहीं दिखा सकता?

·

मेरी अजगर दुभाषिया में

यह कुछ नहीं करता है। मैं मैक ओएस एक्स पर Terminal.app उपयोग कर रहा हूँ और जब मैं बस बैश में में हूँ मैं कोई परेशानी नहीं है:

:~$ · 

लेकिन दुभाषिया में:

:~$ python 
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

^^ मैं कुछ भी नहीं मिलता है, यह सिर्फ अनदेखा करता है कि मैंने अभी चरित्र को चिपकाया है।

>>> unicode('\xc2\xb7') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128) 

मेरे पास है: यदि मैं बच \ मध्य बिंदु के xNN \ xNN प्रतिनिधित्व का उपयोग करें '\ xC2 \ xb7', और यूनिकोड में बदलने के लिए डॉट को दिखाने के लिए कारण बनता है एक त्रुटि फेंक दुभाषिया की कोशिश कर रहा प्रयास करते हैं, सेटअप 'utf-8' तो sitecustomize.py में मेरे डिफ़ॉल्ट एन्कोडिंग के रूप में:

>>> sys.getdefaultencoding() 
'utf-8' 

क्या देता है? यह टर्मिनल नहीं है। यह पायथन नहीं है, मैं क्या गलत कर रहा हूँ ?!

यह प्रश्न इस question से संबंधित नहीं है, क्योंकि यह अविभाज्य यूनिकोड को अपने टर्मिनल में पेस्ट करने में सक्षम है।

+0

मुझे एक ही समस्या है, लेकिन डिफ़ॉल्ट एन्कोडिंग एएससीआई (डुनो क्यों) है: (( – DataGreed

उत्तर

6

unicode('\xc2\xb7') डिफ़ॉल्ट कोडक के साथ प्रश्न में बाइट स्ट्रिंग को डीकोड करने का मतलब है, जो असीसी है - और निश्चित रूप से विफल रहता है (एक अलग डिफ़ॉल्ट एन्कोडिंग सेट करने का प्रयास कभी भी अच्छा काम नहीं करता है, और विशेष रूप से " पेस्टेड अक्षर "- जिसके लिए अलग-अलग वैसे भी सेटिंग की आवश्यकता होगी)। आप '\ xb7 \ xC2' इस्तेमाल कर सकते हैं बजाय यू, और देखते हैं:

>>> print(u'\xc2\xb7') 
· 

के बाद से उन निश्चित रूप से दो यूनिकोड वर्ण हैं। जबकि:

>>> print(u'\uc2b7') 
슷 

आप एक ही यूनिकोड चरित्र देता है (कुछ प्राच्य अनुनय की - माफ करना, मैं इन बातों के बारे में अनभिज्ञ हूँ)। बीटीडब्ल्यू, इनमें से कोई भी "मध्यम बिंदु" जिसे आप ढूंढ रहे थे। शायद तुम

>>> print('\xc2\xb7'.decode('utf8')) 
· 

जो है मध्य बिंदु मतलब है। Btw, मुझे (Mac पर Terminal.app अजगर 2.6.4 python.org से) के लिए:

>>> print('슷') 
슷 

जो एक तरह से मुझे हैरान कर दिया (मैं एक त्रुटि की उम्मीद ... -!)।

+0

वाह, अगर कोई है तो मैं पाइथन के बारे में एक प्रश्न का उत्तर देना चाहता हूं, जब मेरे पास है, तो यह एलेक्स मार्टेलि है! धन्यवाद! मेरा मालिक है आपकी सभी पाइथन किताबें –

+2

एचआरएम, यह सब मेरे लिए काम किया और कुछ भ्रम को मंजूरी दे दी जो मेरे पास यूनिकोड बनाम यूटीएफ -8 पर थी, लेकिन मै मैक टर्मिनल.एप पर पाइथन दुभाषिया में एक यूनिकोड चरित्र पेस्ट करने में सक्षम नहीं हूं। मेरा सहकर्मी न तो डिफ़ॉल्ट एप्पल खोल का उपयोग करता है, लेकिन वह अजगर के बंदरगाह संस्करण के साथ कर सकता है, मुझे लगता है कि यह एक एप्लिकेशन या क्लिपबोर्ड मुद्दा है। –

+2

'u '\ xc2 \ xb7''' '\ xC2 \ xb7'.decode (' UTF8 ') '/' यूनिकोड (' \ xC2 \ xb7 ',' UTF-8 ') '।पूर्व दो कोड बिंदुओं (यू +00 सी 2 (लैटिन कैपिटल लिटर ए सर्कफ्लैक्स) और यू +00 बी 7 (मिडल डीओटी) की यूनिकोड स्ट्रिंग है, बाद वाला यूनिकोड स्ट्रिंग को एक कोड पॉइंट (यू +00 बी 7 (मिडल डॉट) के साथ मूल्यांकन करता है); इसके यूटीएफ -8 एन्कोडिंग के लिए दो बाइट्स की आवश्यकता होती है)। 'यू' \ uc2b7'' है (जैसा कि सचित्र) कुछ पूरी तरह से अलग है: यू + सी 2 बी 7 (हंगुल सिबलबल एसईयूएस)। –

संबंधित मुद्दे