كيفية الحصول على العدد الدقيق للشخصيات متعددة البايت؟

StackOverflow https://stackoverflow.com/questions/1436550

  •  07-07-2019
  •  | 
  •  

سؤال

وحاولت:

mb_strlen('普通话');
strlen('普通话');

وكلاهما الناتج 9، بينما في الواقع هناك شخصيات 3 فقط.

ما هي الطريقة الصحيحة لحساب الحروف؟

هل كانت مفيدة؟

المحلول

ويجب عليك التأكد من تحديد الترميز في المعلمة الثانية

وأي

mb_strlen('普通话', 'UTF-8');

دليل

نصائح أخرى

إذا لم يكن لديك الوصول إلى تمديد سلسلة ميغابايت هذا يعمل أيضا (وأعتقد أنه من أسرع):

strlen(utf8_decode('普通话')); // 3

وحرف واحد الصيني لا يساوي حرف ASCII واحد. mb_strlen هو الطريق الصحيح لحساب شخصيات متعددة البايت إذا كانت السلسلة في UTF-8 المشفرة.

ونرى هنا: http://www.herongyang.com/PHP-Chinese/ متعدد البايت-UTF-8-mb_strlen.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top