Pregunta

Hay funciones de cadena multibyte en PHP para manejar la cadena multibyte (por ejemplo: script CJK). Por ejemplo, quiero contar cuántas letras en una cadena de múltiples bytes usando usando len función en python, pero devuelve un resultado inexacto (es decir, número de bytes en esta cadena)

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

¿Hay algún paquete o función como MB_strlen en PHP?

¿Fue útil?

Solución

Usar Cadenas unicode:

# Encoding: UTF-8

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

Nota la u frente a la cuerda.

Para convertir un testrascre en unicode, use decode: "桜の花びらたち".decode('utf-8')

Otros consejos

Intenta convertirlo en unicode primero:

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

Da 7. Está trabajando en la cadena codificada UTF-8, que de hecho tiene 21 bytes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top