كيفية الحصول على العدد الدقيق للشخصيات متعددة البايت؟
سؤال
وحاولت:
mb_strlen('普通话');
strlen('普通话');
وكلاهما الناتج 9، بينما في الواقع هناك شخصيات 3 فقط.
ما هي الطريقة الصحيحة لحساب الحروف؟
المحلول
نصائح أخرى
إذا لم يكن لديك الوصول إلى تمديد سلسلة ميغابايت هذا يعمل أيضا (وأعتقد أنه من أسرع):
strlen(utf8_decode('普通话')); // 3
وحرف واحد الصيني لا يساوي حرف ASCII واحد. mb_strlen هو الطريق الصحيح لحساب شخصيات متعددة البايت إذا كانت السلسلة في UTF-8 المشفرة.
ونرى هنا: http://www.herongyang.com/PHP-Chinese/ متعدد البايت-UTF-8-mb_strlen.html
لا تنتمي إلى StackOverflow