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 … وهكذا
تم جمع المادة وترجمتها ل شبكة توب ماكس