किसी को भी एक विचार है, क्यों इस अजगर 3.2 कोडपायथन में एक स्ट्रिंग के अपवाद परिवर्तित 3
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e)))
समस्या के बिना काम करता है (विंडोज़ में यूनिकोड एन्कोडिंग के अलग शैल: /) है, लेकिन इस
try:
raise Exception('X')
except Exception as e:
print("Error {0}".format(str(e, encoding = 'utf-8')))
फेंकता टाइप एरर: स्ट्रिंग को स्ट्रिंग: बाइट्स, बाइटियर या बफर-जैसी ऑब्जेक्ट की आवश्यकता है, अपवाद मिला?
कस्टम एन्कोडिंग के साथ एक स्ट्रिंग में त्रुटि को कैसे परिवर्तित करें?
संपादित
यह या तो काम करता है नहीं है, अगर वहाँ संदेश में \ u2019 है:
try:
raise Exception(msg)
except Exception as e:
b = bytes(str(e), encoding = 'utf-8')
print("Error {0}".format(str(b, encoding = 'utf-8')))
लेकिन क्यों str नहीं कर सकते हैं() बाइट्स आंतरिक रूप से एक अपवाद परिवर्तित?
आप 'str (ई) .encode ('utf-8')' कोशिश की? – agf
@agf स्वयं यह स्ट्रिंग के बजाय बाइट्स देता है।मैं इसे बाइट्स (स्ट्र (ई), एन्कोडिंग = 'यूटीएफ -8' के प्रतिस्थापन के रूप में उपयोग कर सकता हूं), लेकिन मुझे हमेशा दूसरे रूपांतरण बाइट्स => str –
"स्ट्रेट() बाइट्स में क्यों परिवर्तित नहीं किया जा सकता है" - यह कैसे होगा पता लगाने के लिए कौन सी एन्कोडिंग पता है? साथ ही, आपका नया कोड .format (str (e)) के समतुल्य है – hamstergene