2012-04-20 17 views
8

मुझे यूनिकोड के साथ पायथन में कोई समस्या है। मुझे इसमें यूनिकोड एनोटेशन के साथ एक ग्राफ की साजिश की आवश्यकता है। tutorial के अनुसार मुझे यूनिकोड में बस अपनी स्ट्रिंग बनाना चाहिए। मैं इसे इस तरह कार्य करें:पायथन: यूनिकोड स्ट्रिंग बनाना

annotation = u"%s has %s rev"%(art.title, len(art.revisions)) 

यह art.title उस में यूनिकोड वर्ण होता है। कभी-कभी लगता है कि कोड काम करता है, कभी कभी यह मुझे नीचे त्रुटि देता है:

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

मैं इसे कैसे ठीक कर सकते हैं?

संपादित करें: मैं बिल्कुल के बाद "एनोटेशन" लाइन त्रुटि है:

File "script.py", line 195, in test_trie 
annotation = u"%s has %s rev"%(art.title, len(art.revisions)) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128) 
+1

'art.title' कहां से आ रहा है? –

+0

क्या आप वाकई कोड लाइन के लिए त्रुटि संदेश दिया गया है जो आपने हमें दिया है? मुझे संदेह है कि वास्तव में त्रुटि होती है जब आप 'एनोटेशन' प्रिंट करते हैं। उस स्थिति में, क्या आप उस कोड लाइन को भी दिखा सकते हैं? – jogojapan

+0

@jogojapan हाँ, प्रश्न में संपादित देखें। – ashim

उत्तर

5

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

मैं art.title.encode("utf-8") या art.title.decode("utf-8") जोड़ने की कोशिश करेगा और देखें कि यह कैसे काम करता है

4

आपके पास दो विकल्प: या तो art.title.decode('utf_8') उपयोग करें, या unicode(art.title, 'utf_8') से UTF-8 एन्कोडिंग के साथ एक नया यूनिकोड स्ट्रिंग पैदा करते हैं।

+0

वे दो अभिव्यक्ति एक ही काम करते हैं, और 'डीकोड' मेरी पसंद होगी। इसी तरह की स्थिति के लिए http://stackoverflow.com/questions/7585435/best-way-to-convert-string-to-bytes-in-python-3 देखें –

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