Вопрос

В PHP существуют многобайтовые строковые функции для обработки многобайтовых строк (например, скрипт CJK).Например, я хочу подсчитать, сколько букв в многобайтовой строке, используя len функция на python, но она возвращает неточный результат (т.е. количество байтов в этой строке)

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

Есть ли в PHP какой-либо пакет или функция, подобная mb_strlen?

Это было полезно?

Решение

Использование Строки в Юникоде:

# Encoding: UTF-8

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

Обратите внимание на u перед строкой.

Чтобы преобразовать байтовую строку в Юникод, используйте decode: "桜の花びらたち".decode('utf-8')

Другие советы

Попробуйте преобразовать его в unicode Первый:

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

дает 7.Вы работаете со строкой в кодировке utf-8, которая действительно содержит 21 байт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top