السلام عليكم ورحمة الله وبركاته
استكمالاً لموضوعناً السابق في العام الماضي حول حل مشكلة الترميز windows-1256 مع phpmyadmin
http://www.swalif.net/softs/swalif54/softs172401/
نعود عليكم بموضوع جديد ولكن هذه المرة حل مشكلة الترميزUTF مع phpmyadmin
طبعا كثير من الاخوة حاولوا بشتى الطرق لإظهار اللغة العربية بالإصدارات الجديدة من phpmyadmin ولم تظهر معهم وتظهر برموز غريبة لاحظ الصورة التالية
ولاحظ أن اللغة العربية تظهر بهذا الشكل مع أن المبرمج قام بالتالي:
- صفحة الإدخال UTF
- وقاعدة البيانات نوعها UTF
- وصفحة الاستعلام أيضا UTF (وتظهر اللغة العربية عنده بدون مشاكل)
توصيف المشكلة
------------------
أنا أتكلم عن من لا يواجه مشكلة مع اللغة العربية الا مع phpmyadmin يعني باختصار هناك اناس لديهم برامج تعمل بدون أي مشاكل مع اللغة العربية ويستخدمون الترميز UTF ولكن المشكلة اذا احتاجوا للدخول الى phpmyadmin لتعديل على بعض الحقول العربية تظهر لهم على شكل رموز غريبة كما في الصورة السابقة مع أنها في الموقع تعمل بدون مشاكل
الحل:
------
هو التعديل على phpmyadmin نفسه لكي تستطيع إظهار اللغة العربية بشكل سليم كما فعلنا مع windows-1256 في الموضوع السابق
اذا الطريقة الصحيحة هي التعديل على phpmyadmin لكي يكون متوافق مع برنامجك وليس أن نعدل برامجنا لكي توافق phpmyadmin لانه بالنهاية هل البرنامج يعمل بشكل سليم أم لا والواقع أن البرنامج يعمل بشكل سليم دون مشاكل.
الطريقة سهلة جدا ...
أولا:
قم بتحميل phpmyadmin اذا لم يكن لديك من الموقع الرسمي
اضغط هنا
phpMyAdmin
ثانيا:
قم بفتح ملف select_lang.lib الموجود داخل مجلد libraries
اذهب الى السطر 400أو ابحث عن
واستبدله بكود PHP:
'utf-8' => 'utf8',
والآن يمكنك استخدم ال UTF بكل يسر وسهولة وقد جربت هذه الطريقة على أكثر من قاعدة بيانات من نوع Latin1 و من نوع utf8_unicode_ci ومن نوع utf8_general_ci وهذا يعني أنها إن شاء الله ستعمل على جميع الأنواع شاهد الصوركود PHP:
'utf-8' => 'latin1',
علما أنني جربت هذه الطريقة على phpmyadmin الاصدار 2.11.4 و الإصدار الأخير 2.11.9.1 ولا يوجد مشاكل وأيضا اللغة العربية تعمل مع الواجهتين العربية والإنجليزية
بالنسبة للإصدار الجديد 3.0.0RC2 جربته ولا ينطبق عليه الحل ننتظر النسخة النهائية
طبعا هناك حلول طرحت في نظري أنها ليست عملية وهو أن يتم تغيير الاتصال بقاعدة البيانات باستخدم
ولكن هذا ليس حلاً عملياً لأن هناك كثير من البرامج لم يحدد فيها طريقة الاتصال وتعمل على الترميز الافتراضي الذي حدده المستخدم و هناك كثير من الناس قاموا بإدخال البيانات بقاعدة البيانات ولا يمكنهم التراجع عن ذلك وهناك حلول طرحت لتحويل قاعدة البيانات ولكنها في نظري ليست الطريقة الصحيحةكود PHP:
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET Table_name utf8");
ملاحظة: هذا الحل نتج بعد عدة محاولات لحل المشكلة واهدي هذا الحل لكل محب للغته العربية ولا أسمح بالنقل إلا مع ذكر المصدر
أخوكم
PHP4PRO