2008-09-18 8 views
10

मैं थोड़ा उलझन में हूं कि मानक लाइब्रेरी अब कैसे व्यवहार करेगी कि पायथन (3.0 से) यूनिकोड-आधारित है। क्या सीजीआई और urllib जैसे मॉड्यूल यूनिकोड स्ट्रिंग का उपयोग करेंगे या वे नए 'बाइट्स' प्रकार का उपयोग करेंगे और केवल एन्कोडेड डेटा प्रदान करेंगे?क्या मानक लाइब्रेरी में सब कुछ पायथन 3.0 में तारों को यूनिकोड के रूप में व्यवहार करेगा?

+0

शायद इस प्रश्न का उत्तर साथी प्रोग्रामर द्वारा नहीं दिया जाना चाहिए, लेकिन पाइथन डेवलपर्स द्वारा (परोक्ष रूप से, अधिमानतः; डेवलपर की चर्चाओं को यहां ब्राउज़ करें: http://mail.python.org/pipermail/python-3000/) – tzot

उत्तर

11

तार्किक रूप से एमआईएम-एन्कोडेड मेल संदेश, यूआरएल, एक्सएमएल दस्तावेज जैसे कई चीजें bytes स्ट्रिंग नहीं हैं। यह कुछ आतंक का कारण बन सकता के रूप में पुस्तकालयों पायथन 3 के लिए नीचे किसी न किसी को शुरू करने और लोगों की खोज bytes/string रूपांतरण की तुलना में वे के लिए str/unicode थे के बारे में जागरूक होना जरूरी है कि वे ...

6

महान में से एक इस प्रश्न के बारे में चीजें (और सामान्य रूप से पायथन) यह है कि आप केवल दुभाषिया में गड़बड़ कर सकते हैं! 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'> 
+0

मैं सहमत हूं - मैंने आज सुबह आरसी 1 संकलित और स्थापित किया है, मैंने अपने दिन का बहुत अधिक समय पहले ही खेल रहा है! मैं बस सोच रहा था कि क्या यूनिकोड क्या होगा और क्या नहीं है इसके लिए एक मानक नियम था। – hacama

1

यहां दो-चरण का नृत्य होगा। Python 3000 and You देखें।

चरण 1 3.0 के तहत चलना है।

चरण 2 आपके एपीआई पर पुनर्विचार करना है, शायद, कुछ और समझदार करें।

सबसे संभावित पाठ्यक्रम यह है कि पुस्तकालय यूनिकोड तारों पर स्विच कर सकते हैं ताकि वे काम करने के लिए जितना संभव हो उतना संगत बने रह सकें।

फिर, शायद, कुछ प्रोटोकॉल के लिए आरएफसी मानकों को अधिक उचित ढंग से कार्यान्वित करने के लिए बाइट्स पर स्विच करेंगे।

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