الفرق بين أستخدم الترميز utf8mb4 و utf8 ل قواعد البيانات

 

MySQL’s utf8 and utf8mb4

لفترة طويلة،تم أستخدم الترميز utf8 ل قواعد البيانات والجداول والأعمدة، على افتراض أنه بإستخدام الترميز utf8 سيكون قادرا على تخزين أي رمز  في قاعدة البيانات.
 

الفرق بين utf8 و utf8mb4 هو أنutf8يمكنه تخزين 3 بايت فقط ، بينما يقوم utf8mb4 بتخزين 4 بايت و utf8mb4 يخطط ل utf-8 الصحيح، وبالتالي يدعم بشكل كامل يونيكود، بما في ذلك astral symbols. 

.وأما من ناحية الUnicode ، يمكن لـ utf8 تخزين الأحرف فقط في Basic Multilingual Plane ، بينما يمكن لـ utf8mb4 تخزين أي حرف Unicode. هذا يوسع إلى حد كبير قابلية استخدام اي لغة ، خاصة في البلدان التي تستخدم مجموعات الأحرف Han . 

utf8mb4 هو 100٪ متوافق مع الإصدارات السابقة مع utf8 .لذلك يجب استخدام ترميز utf8mb4 لدعمِ كاملِ لترميز UTF-8 وليس الترميز utf8!

مختصر الكلام
ترميز utf8 في قواعد البيانات MySQL لا يدعم كل الأحرف والرموز على سبيل المثال الصور التعبيرية Emojis .

كيفية تحويل قاعدة بيانات من utf8 إلى utf8bm4

اذا ارت تحويل قاعدة البيانات من utf8 إلى utf8bm4  لابد أن تكون قاعدة البيانات الخاصة بك كالتالي :

  • أن تكون ترميز قاعدة بياناتك هي utf8 .
  • أن يكون MySQL الخاص بك هو إصدار 5.5.3 أو أعلى (بما في ذلك جميع إصدارات 10.x من MariaDB).
  • مكتبات MySQL هي نسخة 5.5.3 أو أعلى. إذا كنت تستخدم mysqlnd ، 5.0.9 أو أعلى.

بعد ذلك يمكنك عمل ذلك يدوياً بتعديل ترميز الحقول التي تريد دعم utf8 كاملا فيها مثلا حقل تغير ترميز حقل text و title في جدول pbb_subject بتغيير ترميزه ل utf8mb4_unicode_ci … وهكذا

تم جمع المادة وترجمتها ل شبكة توب ماكس