سيكون كل شيء في المكتبة القياسية علاج سلاسل unicode في بيثون 3.0?
-
01-07-2019 - |
سؤال
أنا مرتبك قليلا حول كيفية المكتبة القياسية سوف تتصرف الآن أن الثعبان (من 3.0) هو تستند إلى unicode.سوف وحدات مثل CGI و urllib استخدام سلاسل unicode أو استخدامهم جديدة 'بايت نوع فقط توفير ترميز البيانات ؟
المحلول
منطقيا الكثير من الأشياء مثل MIME ترميز رسائل البريد, عناوين, مستندات XML ، وهكذا ينبغي أن تعاد كما bytes
لا السلاسل.هذا يمكن أن يسبب بعض الذعر مثل المكتبات البدء يكون مسمر على بيثون 3 و يكتشف الناس أنها يجب أن تكون أكثر وعيا bytes
/string
التحويلات من كانوا على str
/unicode
...
نصائح أخرى
واحدة من أشياء عظيمة عن هذا السؤال (الثعبان في العامة) هو أنه يمكنك فقط يعبث في المترجم! بيثون 3.0 rc1 هو متاح حاليا للتحميل.
>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>
سيكون هناك خطوتين الرقص هنا.انظر بيثون 3000 و.
الخطوة 1 على التوالي تحت 3.0.
الخطوة 2 إلى إعادة التفكير API ربما لا شيء أكثر عقلانية.
المسار الأكثر ترجيحا هو أن المكتبات ستتحول إلى سلاسل unicode أن تبقى متوافقة قدر الإمكان مع الطريقة التي تستخدم في العمل.
ثم ربما بعض ستتحول إلى بايت على أكثر بشكل صحيح تنفيذ RFC معايير بروتوكولات مختلفة.