على الـرغم من إسمها, strlen() لا تقوم بعد عدد الحروف, بل إنها تقوم بحساب عدد البايتات. و في الترميز UTF-8 نجد أن هناك بضا من الحروف التي تصل إلى 4 بايتات Bytes.
[PHP]
declare( encoding = ‘UTF-8′ );
header(‘Content-Type: text/plain;charset=utf-8′);
$string = ‘Doppelgänger’;
print ‘strlen(): ‘ . strlen( $string ) . “\n”;
print ‘mb_strlen(): ‘ . mb_strlen( $string, ‘utf8′ ) . “\n\n”;
print ‘substr(): ‘ . substr( $string, 0, 8 ) . “\n”;
print ‘mb_substr(): ‘ . mb_substr( $string, 0, 8, ‘utf8′ );
[/PHP]
النـتيجة:

كمت ترى فإنه عند إستخراج نص عادي نرى أنه كسر و لم يظهر بالشكل المطلوب, وهذا ما يحدث كل مرة عند إستخدام الدوال strlen() و substr() على الـصفحات المشفرة بـالترميز UTF-8.
و بالتالي فمن أجل عد عدد الحروف أو من أجل إظهار جزء من الكلمات عند إستخدام الترميز UTF-8 بشكل جيد, يمكنك إستخدام التوابع mb_strlen() و mb_substr() ..
و إلى هنا أصل إلى نهاية هذه التدوينة //
تحياتي ..

