मेरे पास यूनिकोड में एक स्ट्रिंग है और मुझे पहले एन वर्णों को वापस करने की आवश्यकता है। मैं यह कर रहा हूं:यूनिकोड स्ट्रिंग के पहले एन अक्षरों को लौटाना
result = unistring[:5]
लेकिन निश्चित रूप से यूनिकोड तार की लंबाई = वर्णों की लंबाई। कोई विचार? एकमात्र समाधान फिर से उपयोग कर रहा है?
संपादित करें: अधिक जानकारी
unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]
returns->?
मुझे लगता है कि यूनिकोड स्ट्रिंग्स दो बाइट्स (चार) हैं, यही कारण है कि यह बात होती है। अगर मैं कार्य करें:
result = unistring[:2]
मैं
M
जो सही है, मिलता तो, मैं हमेशा काट चाहिए * 2 या मैं कुछ करने के लिए कनवर्ट करना चाहिए?
क्या आप सुनिश्चित हैं कि आपके पास वास्तविक यूनिकोड स्ट्रिंग है, और यूटीएफ -8 डेटा के साथ एक बाइट्रिंग नहीं है? यदि हां, तो आप 'चरित्र' को कैसे परिभाषित करते हैं? (यूनिकोड तार कोडपॉइंट्स (यूसीएस -4 बिल्डों में) या कोडुनिट्स के तार हैं।) –
हमारे होस्ट से: http://www.joelonsoftware.com/articles/Unicode.html – Will
, कृपया नहीं। यह वास्तव में यहां लागू नहीं है। – Joey