Wie man mit einer Multibyte -Saite in Python umgeht
-
27-10-2019 - |
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?
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