Come gestire stringa multibyte in Python
-
27-10-2019 - |
Domanda
Ci sono funzioni di stringa multibyte in PHP per stringa multibyte maniglia (per esempio: lo script CJK). Per esempio, io voglio contare quante lettere di una stringa a più byte utilizzando la funzione len
in Python, ma restituire un risultato impreciso (cioè il numero di byte in questa stringa)
japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7
C'è un pacchetto o di una funzione, come mb_strlen in PHP?
Soluzione
# Encoding: UTF-8
japanese = u"桜の花びらたち"
print japanese
print len(japanese)
Si noti la u
davanti alla stringa.
Per convertire un bytestring in Unicode, uso decode
: "桜の花びらたち".decode('utf-8')
Altri suggerimenti
Prova convertendolo in unicode
prima:
print len(japanese.decode("utf-8"))
dà 7. Si sta lavorando sulla stringa codificata utf-8, che ha infatti 21 byte.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow