मैं थोड़ा उलझन में हूं कि मानक लाइब्रेरी अब कैसे व्यवहार करेगी कि पायथन (3.0 से) यूनिकोड-आधारित है। क्या सीजीआई और urllib जैसे मॉड्यूल यूनिकोड स्ट्रिंग का उपयोग करेंगे या वे नए 'बाइट्स' प्रकार का उपयोग करेंगे और केवल एन्कोडेड डेटा प्रदान करेंगे?क्या मानक लाइब्रेरी में सब कुछ पायथन 3.0 में तारों को यूनिकोड के रूप में व्यवहार करेगा?
उत्तर
तार्किक रूप से एमआईएम-एन्कोडेड मेल संदेश, यूआरएल, एक्सएमएल दस्तावेज जैसे कई चीजें bytes
स्ट्रिंग नहीं हैं। यह कुछ आतंक का कारण बन सकता के रूप में पुस्तकालयों पायथन 3 के लिए नीचे किसी न किसी को शुरू करने और लोगों की खोज bytes
/string
रूपांतरण की तुलना में वे के लिए str
/unicode
थे के बारे में जागरूक होना जरूरी है कि वे ...
महान में से एक इस प्रश्न के बारे में चीजें (और सामान्य रूप से पायथन) यह है कि आप केवल दुभाषिया में गड़बड़ कर सकते हैं! Python 3.0 rc1 is currently available for download।
>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>
मैं सहमत हूं - मैंने आज सुबह आरसी 1 संकलित और स्थापित किया है, मैंने अपने दिन का बहुत अधिक समय पहले ही खेल रहा है! मैं बस सोच रहा था कि क्या यूनिकोड क्या होगा और क्या नहीं है इसके लिए एक मानक नियम था। – hacama
यहां दो-चरण का नृत्य होगा। Python 3000 and You देखें।
चरण 1 3.0 के तहत चलना है।
चरण 2 आपके एपीआई पर पुनर्विचार करना है, शायद, कुछ और समझदार करें।
सबसे संभावित पाठ्यक्रम यह है कि पुस्तकालय यूनिकोड तारों पर स्विच कर सकते हैं ताकि वे काम करने के लिए जितना संभव हो उतना संगत बने रह सकें।
फिर, शायद, कुछ प्रोटोकॉल के लिए आरएफसी मानकों को अधिक उचित ढंग से कार्यान्वित करने के लिए बाइट्स पर स्विच करेंगे।
शायद इस प्रश्न का उत्तर साथी प्रोग्रामर द्वारा नहीं दिया जाना चाहिए, लेकिन पाइथन डेवलपर्स द्वारा (परोक्ष रूप से, अधिमानतः; डेवलपर की चर्चाओं को यहां ब्राउज़ करें: http://mail.python.org/pipermail/python-3000/) – tzot