C'è già stato un po 'di aiuto in questo, ma sono ancora confuso.Python lunghezza della confusione stringa unicode
Ho una stringa unicode come questo:
title = u'test'
title_length = len(title) #5
Ma! Ho bisogno di len (titolo) per essere 6. I client si aspettano che sia 6 perché sembrano contare in modo diverso rispetto al backend.
Come soluzione temporanea, ho scritto questo piccolo aiuto, ma sono sicuro che può essere migliorato (con sufficiente conoscenza delle codifiche) o forse è anche sbagliato.
title_length = len(title) + repr(title).count('\\U') #6
1. C'è un modo migliore di ottenere la lunghezza di essere 6? :-)
Suppongo che (Python) stia contando il numero di caratteri unicode che è 5. I client stanno contando il numero di byte?
2. La mia logica si interrompe per altri caratteri unicode che richiedono 4 byte, ad esempio?
Esecuzione di Python 2.7 ucs4.
Il client conta coppie surrogate UTF-16. –
Quando ho provato a eseguire queste due righe, ha mostrato la lunghezza come 6. – ssundarraj
@ssundarraj: vedere la mia risposta; stai eseguendo una build di Python 2 UCS2. Utilizza Python 3.3 o versioni successive oppure crea una build UCS4. –