يجب أن أستخدم وظائف MB_ * أو ICONV_ * للحصول على سلاسل متعددةابايت؟
سؤال
كما نحن جميعا الآن، فإن التعامل مع سلاسل متعددة بايت ليست سهلة في PHP. على سبيل المثال، أريد الحصول على طول السلسلة التالية: ä
strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1
ما هي الوظائف التي يجب أن أستخدمها؟ MB_ * أو ICONV_ *؟ لماذا ا؟ بالنظر إلى أن الترميز قد لا يقتصر على UTF-8.
تشك مقدما!
المحلول
إلقاء نظرة على عرض PowerPoint هذا:
http://www.nyphp.org/content/presentations/smallworld/april2006-nephp-presentation.ppt.
باختصار: تؤيد ICONV المزيد من الترميزات، ولكنها أقل محمولة.
من العرض التقديمي:
يدعم PHP متعدد البايت في ملحقين: Iconv و MBTTring
- يستخدم ICONV مكتبة خارجية (يدعم المزيد من الترميزات ولكن أقل محمولة)
- يحتوي MBSTring على مكتبة مجمعة مع PHP (ترميزات أقل ولكن أكثر محمولة)
لا تنتمي إلى StackOverflow