تعريب قواعد البيانات اللاتينية لحل مشكلة علامات الاستفهام عند حفظ البيانات باللغة العربية
بعض البرمجيات يتم تحميلها بالكوليشن الاساسي لمايسكويل و هو لاتين سويديش دون مراعاة المستخدمين العرب مما يؤدي لظهور علامات استفهام عند خفظ بيانات باللغة العربية و لحل هذة المشكلة
اولا قم بعمل نسخة احتياطية لقاعدة البيانات
يوجد طريقتين.. الاولي في حالة رغبة تغيير كوليشن الحقول و الجداول دون المساس بالبيانات المخزنة و تفيد في المواقع الحية و هي كالتالي
mysql -B -N --user=user --password=secret -e "SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname';" > alter.sql
ثم
mysql --user=user --password=secret < alter.sql
الطريقة الثانية تقوم بتعديل كلي شامل البيانات و تصلح للمواقع الجديدة غير المحملة ببيانات بعد.. او تاكد من عدم وجود بيانات بالكوليشن الذي ستغيره قبل البدء و هي كالتالي
من خلال شاشة اس اس اتش اتبع الاوامر التالية
1- استخراج او تصدير قاعدة البيانات بدون كوليشن عبر الامر التالي
mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql
2- حذف ماله لاقة باللاتينية السويدية من الملف المستخرج عبر الامر التالي
sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql
3- حذف قاعدة البيانات القديمة و اعادة انشائها من جديد
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
4- و اخيرا استيراد البيانات المنقحة بالكوليشن يو ام تي 4 الي قاعجة البيانات..
mysql --user=username --password=password --default-character-set=utf8 dbname < dump_utf.sql
المصدر: https://stackoverflow.com/a/2150335