इस बारे में काफी मदद मिली है, लेकिन मैं अभी भी उलझन में हूं। लेकिनयूनिकोड स्ट्रिंग भ्रम की पाइथन लंबाई
title = u'test'
title_length = len(title) #5
:
मैं इस तरह एक यूनिकोड स्ट्रिंग है! मुझे लेन होने के लिए लेन (शीर्षक) की आवश्यकता है। ग्राहकों को यह 6 होने की उम्मीद है क्योंकि वे बैकएंड पर मुझसे अलग तरीके से गिनते हैं।
एक कामकाज के रूप में मैंने इस छोटे से सहायक को लिखा है, लेकिन मुझे यकीन है कि इसे बेहतर किया जा सकता है (एन्कोडिंग के बारे में पर्याप्त ज्ञान के साथ) या शायद यह भी गलत है।
title_length = len(title) + repr(title).count('\\U') #6
1. वहाँ लंबाई होने का एक बेहतर तरीका 6 होने के लिए है? :-)
मुझे लगता है कि मुझे (पायथन) यूनिकोड वर्णों की संख्या की गणना कर रहा है जो 5 है। ग्राहक बाइट्स की संख्या गिन रहे हैं?
2. क्या मेरे तर्क अन्य यूनिकोड वर्णों के लिए तोड़ेंगे जिन्हें उदाहरण के लिए 4 बाइट की आवश्यकता है?
पायथन 2.7 ucs4 चल रहा है।
ग्राहक यूटीएफ -16 सरोगेट जोड़े की गणना करता है। –
जब मैंने उन दो पंक्तियों को चलाने की कोशिश की, तो यह लंबाई 6 के रूप में दिखाया गया। – ssundarraj
@ssundarraj: मेरा जवाब देखें; आप एक पायथन 2 यूसीएस 2 निर्माण चला रहे हैं। पायथन 3.3 या ऊपर का प्रयोग करें, या अपने आप को एक यूसीएस 4 बिल्ड प्राप्त करें। –