يجب أن أستخدم وظائف MB_ * أو ICONV_ * للحصول على سلاسل متعددةابايت؟

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

  •  23-08-2019
  •  | 
  •  

سؤال

كما نحن جميعا الآن، فإن التعامل مع سلاسل متعددة بايت ليست سهلة في 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 (ترميزات أقل ولكن أكثر محمولة)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top