مشكلة مع العلمان و mb_substr
سؤال
أنا أقوم بتقطيع سلسلة 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
قد يتم استبدالها في اختيارك) لتحديد الترميز الدائم لوظائف متعددة الفئران.