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?

È stato utile?

Soluzione

Unicode stringhe :

# 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
scroll top