سؤال

أنا أقوم بتقطيع سلسلة Unicode مع الرسوم باستخدام mb_substr الوظيفة ولكنها تعمل كما سأستخدمها بسيطة substr وظيفة. إنه يقسم أحرف Unicode إلى نصف عرض سؤال مميز.

على سبيل المثال

echo mb_substr('ááááá', 0, 5); //Displays áá�

ما قد يكون خطأ؟

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

المحلول

لدي نفس المشكلة إذا لم أحدد تشفير المعلمة الأخيرة إلى mb_substr : إنه افتراضي ، على الأقل على الخادم الخاص بي ، إلى ISO-8859-1.


ولكن ، إذا قمت بتعيين الترميز بشكل صحيح ، إلى UTF-8, ، يعمل بشكل جيد:

echo mb_substr('ááááá', 0, 5, 'UTF-8');

يحصل على الشاشة الصحيحة في المتصفح:

ááááá


يرى mb_substr (نقلا عن ، التركيز الألغام) :

string mb_substr  ( string $str  , int $start  [, 
    int $length  [, string $encoding  ]] )

ال encoding المعلمة هي تشفير الأحرف. إذا تم حذفه ، فسيتم استخدام قيمة تشفير الأحرف الداخلية.

نصائح أخرى

واجهت نفس المشكلة وساعدتني الإجابات أعلاه أيضًا. بجانب الإعداد php.ini أو باستخدام ini_set(), ، قد يساعد أيضًا في استخدامه mb_internal_encoding('utf-8'); (utf-8 قد يتم استبدالها في اختيارك) لتحديد الترميز الدائم لوظائف متعددة الفئران.

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