मैं एकपायथन: यूनिकोड स्ट्रिंग को स्वीकार करने के लिए StringIO.writelines कैसे प्राप्त करें?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 34: ordinal not in range(128)
एक स्ट्रिंग नीचे 'a.desc' में संग्रहित पर
हो रही है के रूप में यह '£' वर्ण है। यह अंतर्निहित Google App Engine डेटास्टोर में एक यूनिकोड स्ट्रिंग के रूप में संग्रहीत है, तो यह ठीक है। cStringIO.StringIO.writelines समारोह प्रतीत होता है ascii प्रारूप में सांकेतिक शब्दों में बदलना करने की कोशिश कर कोशिश कर रहा है:
result.writelines(['blahblah',a.desc,'blahblahblah'])
कैसे मुझे लगता है कि यदि सही शब्दों है यह यूनिकोड के रूप में एन्कोडिंग के इलाज के लिए हिदायत करते हैं?
एप्लिकेशन इंजन अजगर 2.5
मैंने स्विच किया (सीस्ट्रिंगियो बेहतर प्रदर्शन-वार होने के लिए है) और इसने कोई त्रुटि नहीं डाली लेकिन केवल '£' के बजाय '£' प्रिंट किया। अब 'क्यों दिख रहा है? – rutherford
'£' 0xc2 0xa3 का विंडोज -1252 डिकोडिंग है जो यू '£' का यूटीएफ -8 एन्कोडिंग है। हो सकता है कि आपका टर्मिनल, ऐप, या जहां भी आप देख रहे हों कि यूटीएफ -8 के बजाय विंडोज -1252 के लिए कॉन्फ़िगर किया गया है। – Phil
हम्म। अनिवार्य रूप से मैं क्रोम ब्राउज़र के माध्यम से एक वेब सर्वर प्रतिक्रिया देख रहा हूँ। क्या यह मुद्दा होगा? – rutherford