حل مشكلة عدم التعرف على النصوص العربية في قواعد بيانات MySQL
- طريقة إنشاء قاعدة بيانات تقبل الحروف العربية
- طريقة تغيير ترميز قاعدة بيانات معرفة سابقاً لجعلها تقبل الحروف العربية
بعض المشاكل التي تواجهنا في قواعد البيانات أنها لا تتعرف على النصوص العربية و عند إضافة أي نص عربي يتم إضافته على هيئة رموز غير مفهومة.
سبب هذه المشكلة هو الترميز المعتمد من قبل قاعدة البيانات.
معلومة تقنية
الترميز utf8_unicode_ci
يجعل قاعدة البيانات قادرة على تخزين النصوص بشكل صحيح مهما كانت اللغة التي يتم التعامل معها. أي سواء كنت تخزن نص مكتوب بالإنجليزية, العربية, الهندية, الصينية إلخ.. فإنه سيتخزن بدون أي مشاكل.
لذا نصيحة قم دائماً باعتماد الترميز utf8_unicode_ci
لأي قاعدة بيانات تقوم بإنشائها.
طريقة إنشاء قاعدة بيانات تقبل الحروف العربية
لإنشاء قاعدة البيانات تفهم الحروف العربية و تخزنها بشكل صحيح, عند إنشاءها يجب تحديد أن الترميز الذي ستعتمده هو الترميز utf8_unicode_ci
و سنضع لك ثلاث طرق تبين لك كيفية فعل ذلك.
الطريقة الأولى
إذا كنت تنشئ قاعدة البيانات بواسطة واجهة PhpMyAdmin الرسومية فعند إدخال إسم قاعدة البيانات يجب أن تحدد ترميزها من قائمة الترميز الموضوعة بجانب الحقل الذي تدخل فيه إسمها.
الطريقة الثانية
إذا أردت إنشاء قاعدة البيانات مع تحديد ترميز اللغة العربية بإستخدام أوامر SQL.
CREATE DATABASE learn COLLATE=utf8_unicode_ci;
الطريقة الثالثة
طريقة إنشاء قاعدة البيانات مع تحديد ترميز اللغة العربية بإستخدام لغة PHP.
$conn->query("CREATE DATABASE learn COLLATE=utf8_unicode_ci");
طريقة تغيير ترميز قاعدة بيانات معرفة سابقاً لجعلها تقبل الحروف العربية
في حال كنت قد أنشأت قاعدة البيانات بترميز لا يدعم اللغة العربية, يمكنك اتباع الخطوات التالية لتغيير الترميز الحالي و اختيار الترميز utf8_unicode_ci
الذي يدعم اللغة العربية كالتالي:
- إفتح PhpMyAdmin.
- قم بالدخول إلى قاعدة البيانات التي تريد تغيير ترميزها.
- أنقر على كلمة Operations.
- إنزل إلى أسفل الصفحة حتى تجد القسم الخاص بالترميز, القسم إسمه Collation.
- قم بتغيير الترميز الذي تجده إلى
utf8_unicode_ci
و من ثم قم بوضع علامة صح على الخيار Change all tables collations و الخيار Change all tables columns collations كما يظهر في الصورة التالية. - في الأخير يجب أن تنقر على الزر GO حتى يتم حفظ التغييرات.
هكذا تكون قد قمت بتعديل ترميز قاعدة البيانات و جداولها و أعمدتها حتى تقبل اللغة العربية بطريقة سهلة جداً.