السلام عليكم اخواني …
اردت ان اشارككم بعض الملاحظات المهمة حول الموضوع الذي طرح كثيرا في الاونة الاخير في قسم php في منتديات سوالف سوفت والذي يتعلق ببرنامج ادارة قواعد البيانات phpmyadmin عند تصدير او استيراد قواعد بيانات تحوي اللغة العربية .
حدثت مشاكل ؟؟ والكثير اعطى الحلول ؟؟ وانا شخصيا جربت الحل التالي :
وفي البداية هالحل ما نفعني وما زبط ولكن في الحقيقة هو الحل الامثل لهالمشكلة … والمشكلة ببساطة هي عدم ظهور اللغة العربية بالشكل المطلوب في phpmyadmin وانما تظهر بشكل رموز غير مفهومة او علامات سؤال . المشكلة من القاعدة التي بحوزتنا وليست بالاستعلام والسبب ان جميعنا في البداية لم نكتب هذا الاستعلام في ملف الاتصال والذي حدث هو اننا اصبحنا نضيف البيانات للقاعدة ودخلت البيانات على شكل رموز او علامات سؤال … وعندما تخرج تكون تمام كما نريد … ولكن عند استعراضها في phpmyadmin تكون بعكس ما نريد … بعد فترة من تجربة السكربت وكلو تمام اصبحنا نواجه مشاكل احيانا وظهرت الحاجة للدخول لـ phpmyadmin ومعاينة البيانات من داخله ولكنها لم تظهر كما نريد … دخلت البيانات للقاعدة بترميز معين (ليس UTF-8) وحفظت بداخل القاعدة بهذا الترميز ونريد ان تظهر البيانات بالشكل المطلوب فقمنا باستعمال الاستعلام الذي ذكر في البداية ولكنه لم ينجح والسبب بان هذا الترميز يعالج البيانات ذات الترميز UTF-8 فقط . الحل : يجب ان نكتب هذا الاستعلام قبل اضافة اي بيانات للقاعدة فعندها سوف تدخل البيانات بالترميز UTF-8 وتظهر البيانات التي بالعربية بالشكل المطلوب في phpmyadmin وعندما نصدر القاعدة تظهر البيانات ايضا باللغة العربية بدون شوائب وعندما نريد استيراد القاعدة من جديد لن نواجه اي مشاكل . قسم كبير من الاخوة والذين يستعملون سكربتات عالمية مثل 4images ترميز القاعدة الافتراضي لهذا السكربت ليس UTF-8 والذي يحدث ان المستخدم عندما يطلب ملف التنصيب لهذا السكربت او غيره فانه ينصب جميع البيانات في القاعدة بترميز غير UTF-8 ولكننا نكمل ونقوم بادخال البيانات وفجأة نطالب برؤية البيانات بترميز UTF-8 لأنه الوحيد الذي يظهر اللغة العربية بتوافق تام مع جميع السكربتات وجميع الانظمة . الحل في هذه الحالة هو تعقب ومعرفة الكود المصدري لملف التنصيب واين تخزن استعلامات التنصيب عندها نستطيع ان نعالج المشكلة قبل حدوثها عن طريقة اضافة الاستعلامات التالية :
وطبعا جميع ما قيل في هذا الموضوع يخص الاخوة المعنيين باستعمال الترميز UTF-8 في برمجياتهم او الذين يريدون ان تظهر اللغة العربية بشكل صحيح في phpmyadmin وانا قمت بكتابة هذا الموضوع على اعتبار بان كلا الطرفين من الاخوة يعلمون جيدا بان هناك خطوات تسبق خطوات التعديل في قواعد البيانات وملف الاتصال وهي تحويل جميع ملفات السكربت الى الترميز UTF-8 مع حذف علامة ترتيب البايت Byte ordr mark - BOM وهذا يحتاج لاحد المحررات التي تدعم هذه الخاصية مثل Dreamweaver او Notepad ++ او EMeditor الذي استعمله شخصيا . المقال لـ EbNCaNa
حدثت مشاكل ؟؟ والكثير اعطى الحلول ؟؟ وانا شخصيا جربت الحل التالي :
<?
mysql_query(”SET CHARACTER SET utf8″);
mysql_query(”SET NAMES utf8″); ?>
mysql_query(”SET NAMES utf8″); ?>
وفي البداية هالحل ما نفعني وما زبط ولكن في الحقيقة هو الحل الامثل لهالمشكلة … والمشكلة ببساطة هي عدم ظهور اللغة العربية بالشكل المطلوب في phpmyadmin وانما تظهر بشكل رموز غير مفهومة او علامات سؤال . المشكلة من القاعدة التي بحوزتنا وليست بالاستعلام والسبب ان جميعنا في البداية لم نكتب هذا الاستعلام في ملف الاتصال والذي حدث هو اننا اصبحنا نضيف البيانات للقاعدة ودخلت البيانات على شكل رموز او علامات سؤال … وعندما تخرج تكون تمام كما نريد … ولكن عند استعراضها في phpmyadmin تكون بعكس ما نريد … بعد فترة من تجربة السكربت وكلو تمام اصبحنا نواجه مشاكل احيانا وظهرت الحاجة للدخول لـ phpmyadmin ومعاينة البيانات من داخله ولكنها لم تظهر كما نريد … دخلت البيانات للقاعدة بترميز معين (ليس UTF-8) وحفظت بداخل القاعدة بهذا الترميز ونريد ان تظهر البيانات بالشكل المطلوب فقمنا باستعمال الاستعلام الذي ذكر في البداية ولكنه لم ينجح والسبب بان هذا الترميز يعالج البيانات ذات الترميز UTF-8 فقط . الحل : يجب ان نكتب هذا الاستعلام قبل اضافة اي بيانات للقاعدة فعندها سوف تدخل البيانات بالترميز UTF-8 وتظهر البيانات التي بالعربية بالشكل المطلوب في phpmyadmin وعندما نصدر القاعدة تظهر البيانات ايضا باللغة العربية بدون شوائب وعندما نريد استيراد القاعدة من جديد لن نواجه اي مشاكل . قسم كبير من الاخوة والذين يستعملون سكربتات عالمية مثل 4images ترميز القاعدة الافتراضي لهذا السكربت ليس UTF-8 والذي يحدث ان المستخدم عندما يطلب ملف التنصيب لهذا السكربت او غيره فانه ينصب جميع البيانات في القاعدة بترميز غير UTF-8 ولكننا نكمل ونقوم بادخال البيانات وفجأة نطالب برؤية البيانات بترميز UTF-8 لأنه الوحيد الذي يظهر اللغة العربية بتوافق تام مع جميع السكربتات وجميع الانظمة . الحل في هذه الحالة هو تعقب ومعرفة الكود المصدري لملف التنصيب واين تخزن استعلامات التنصيب عندها نستطيع ان نعالج المشكلة قبل حدوثها عن طريقة اضافة الاستعلامات التالية :
<?
TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
?>
ونقوم باضافة هذا السطر بعد عرض PRIMARY KEY … مثال :
<?
PRIMARY KEY (`id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; ?>
) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ; ?>
وطبعا جميع ما قيل في هذا الموضوع يخص الاخوة المعنيين باستعمال الترميز UTF-8 في برمجياتهم او الذين يريدون ان تظهر اللغة العربية بشكل صحيح في phpmyadmin وانا قمت بكتابة هذا الموضوع على اعتبار بان كلا الطرفين من الاخوة يعلمون جيدا بان هناك خطوات تسبق خطوات التعديل في قواعد البيانات وملف الاتصال وهي تحويل جميع ملفات السكربت الى الترميز UTF-8 مع حذف علامة ترتيب البايت Byte ordr mark - BOM وهذا يحتاج لاحد المحررات التي تدعم هذه الخاصية مثل Dreamweaver او Notepad ++ او EMeditor الذي استعمله شخصيا . المقال لـ EbNCaNa
التعليقات على المقالة 5
ابوليالي 4-12-2014
رد
اعشق وطني 4-11-2014
رد
محمد 15-6-2013
رد
يوسف 27-7-2012
رد
احمد 12-2-2012
رد