Frage

Es gibt Multibyte -String -Funktionen in PHP, um Multibyte -String (z. B. CJK -Skript) zu verarbeiten. Zum Beispiel möchte ich zählen, wie viele Buchstaben in einer Multi -Bytes -Zeichenfolge mithilfe verwendet werden len Funktion in Python, aber es gibt ein ungenaues Ergebnis zurück (dh Anzahl der Bytes in dieser Zeichenfolge)

japanese = "桜の花びらたち"
print japanese
print len(japanese)#return 21 instead of 7

Gibt es ein Paket oder eine Funktion wie mb_strlen in PHP?

War es hilfreich?

Lösung

Verwenden Unicode -Saiten:

# Encoding: UTF-8

japanese = u"桜の花びらたち"
print japanese
print len(japanese)

Beachten Sie das u vor der Saite.

Um einen Bytestring in Unicode umzuwandeln, verwenden Sie decode: "桜の花びらたち".decode('utf-8')

Andere Tipps

Versuchen Sie es zu konvertieren, es in unicode Erste:

print len(japanese.decode("utf-8"))

gibt 7. Sie arbeiten an der UTF-8-codierten Zeichenfolge, die tatsächlich 21 Bytes hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top