मेरी मूल स्ट्रिंग एक यूनिकोड स्ट्रिंग वैसे भी (अर्थात एक यू के उपसर्ग)
... जो समस्या है था। यह एक "स्ट्रिंग" नहीं था, लेकिन एक "यूनिकोड ऑब्जेक्ट"। इसमें यूनिकोड कोड बिंदुओं का अनुक्रम शामिल है। इन कोड बिंदुओं में, निश्चित रूप से, कुछ आंतरिक प्रतिनिधित्व होना चाहिए जो पाइथन को पता है, लेकिन जो कुछ भी है उसे दूर किया गया है और print repr(my_u_str)
पर उन्हें \uXXXX
इकाइयों के रूप में दिखाया गया है।
बाइट्स का अनुक्रम प्राप्त करने के लिए एक और प्रोग्राम समझ सकता है, आपको यूनिकोड कोड बिंदुओं का अनुक्रम लेने और इसे एन्कोड करने की आवश्यकता है। आपको एन्कोडिंग पर निर्णय लेने की ज़रूरत है, क्योंकि इसमें से चुनने के लिए बहुत सारे विकल्प हैं। यूटीएफ 8 और यूटीएफ 16 आम विकल्प हैं। एएससीआईआई भी फिट हो सकता है, अगर यह फिट बैठता है। u"abc".encode('ascii')
बस ठीक काम करता है।
करो my_u_str = u"\u2119ython"
और फिर type(my_u_str)
और type(my_u_str.encode('utf8'))
प्रकार में अंतर को देखने के लिए: पहले <type 'unicode'>
और दूसरा <type 'str'>
है। (पायथन 2.5 और 2.6 के तहत, वैसे भी)।
चीजें पाइथन 3 में अलग हैं, लेकिन चूंकि मैं शायद ही कभी इसका उपयोग करता हूं, इसलिए मैं अपनी टोपी से बात कर रहा हूं अगर मैंने इसके बारे में कुछ भी आधिकारिक कहने की कोशिश की।
यह प्रत्यक्ष एवर नहीं है, लेकिन यह पाठ एक पढ़ने योग्य है: [पूर्ण न्यूनतम सॉफ्टवेयर डेवलपर बिल्कुल, यूनिकोड और कैरेक्टर सेट्स (कोई बहाना नहीं है!) के बारे में जानना चाहिए (http: //www.joelonsoftware। कॉम/लेख/यूनिकोड.html) जोएल स्पॉस्की – balpha
अनुमान-आधारित प्रोग्रामिंग द्वारा। अब यह एक लोकप्रिय प्रतिमान है :) – Amnon
मूलभूत बातें सीखने के अपने अनुभव में (जैसे आप यहां कर रहे हैं) अधिक प्रभावी है। – Amnon