पाइथन 2.2 और PEP 261 के बाद से, पायथन को "संकीर्ण" या "चौड़ा" मोड में बनाया जा सकता है, जो "चरित्र" की परिभाषा को प्रभावित करता है, यानी "एक पायथन यूनिकोड स्ट्रिंग की एड्रेसेबल यूनिट"।पाइथन 3 में यूनिकोड तार क्या अभी भी "संकीर्ण"/"चौड़ा" निर्माण पर निर्भर करता है?
संकीर्ण मेंवर्ण बनाता UTF-16 कोड इकाइयों की तरह लग रहे:।
>>> a = u'\N{MAHJONG TILE GREEN DRAGON}'
>>> a
u'\U0001f005'
>>> len(a)
2
>>> a[0], a[1]
(u'\ud83c', u'\udc05')
>>> [hex(ord(c)) for c in a.encode('utf-16be')]
['0xd8', '0x3c', '0xdc', '0x5']
(ऊपर somesources से सहमत नहीं है कि का कहना है कि संकीर्ण यूसीएस -2 का उपयोग बनाता है लगता है, नहीं UTF-16 बहुत पेचीदा वास्तव में)
क्या पाइथन 3.0 इस भेद को बनाए रखता है? या सभी पाइथन 3 व्यापक बनाता है?
(मैं PEP 393 के बारे में है कि 3.3 में तार के आंतरिक प्रतिनिधित्व बदलता है सुना है, लेकिन यह 3.0 ~ 3.2 से संबंधित नहीं है।)
मैंने कुछ परीक्षण किए हैं जो कि प्लेटफॉर्म का निर्माण कर रहे हैं। संकीर्ण: विंडोज़, मैक, नेटबीएसडी, ओपनबीएसडी, सोलारिस। वाइड: लिनक्स, फ्रीबीएसडी। पायथन 2.7 के साथ परीक्षण किया। तो मैं सबसे यूनिक्स * व्यापक निर्माण का उपयोग नहीं कर सकता। – JonnyJD