تحويل ترميز قاعدة البيانات إلي utf8 ومنها

ADMIN

Administrator
طاقم الإدارة
إنضم
Sep 10, 2006
المشاركات
23,661
الإقامة
Egypt
يرغب الكثير من اصحاب المواقع والمنتديات في تغير ترميز قاعدة البيانات إلي UTF8 وهو الترميز العالمي المعتمد والذي يدعم الكثير من اللغات ومنها اللغة العربية.

وتم اضافة خدمة تحويل ترميز قواعد البيانات لدي الكثير من الشركات بمبالغ مالية كبيرة بشكل مبالغ فيه بالنسبة للمجهود الذي يبذل في عملية تحويل قاعدة البيانات الي الترميز العالمي utf.

ومن المعروف ان هناك فوائد لـ تغير ترميز قاعدة بيانات الموقع ومنها اكتساب صدقات محركات البحث ودعم الترميز الخاص بموقعك من جانبها بالإضافة الي توافق الترميز مع جميع متصفحات الانترنت المختلفة مما يسهل نشر موقعك بسهولة بين مختلف الاشخاص وفي مختلف الدول.

convert-mysql-utf8.jpg


واليوم نعرض عليكم افضل سكربت مجاني لتغير ترميز قاعدة البيانات إلي utf8 وقمت بتجربة هذا الاسكربت شخصياً وعمل معي بشكل رائع على اكثر من قاعدة بيانات. ( وقبل التجربة يجب اخذ نسخة احتياطية من قاعدة البيانات الاصلية تحسباً لأي عملية تلف في عملية التحويل او فقد للبيانات ) فانا ومبرمج الاسكربت لا نتحمل اي مسئولية تجاه اي عملية تحويل غير ناجحة.

طريقة التحويل الي الترميز العالمي UTF-8

اولاً الاسكربت من برمجة الاخ الكريم المحب لله ورسوله وهو الاصدار الثاني من سكربت التحويل من وإلي UTF-8.

ثانيا وظيفة الاسكربت
1- تحويل من الترميز window-1256 لليونيكود utf-8
2- التحويل من اليونيكود utf-8 إلي الويندوز window-1256
3- ضبط مشكلة قاعدة البيانات وهي ان تكون القاعدة ترميزها latin1_swedish_ci ولكن محتواها عربي وهذا يجعل المحتوي يظهر رموز وشخابيط داخل phpmyadmin فهذا السكربت يقوم بحل هذه المشكلة وستظل قاعدتك علي نفس الترميز ولكن ستصبح الجداول cp1256_general_ci والمحتوي يظهر عربي


ثالثاً الجديد في هذا الاصدار والذي يتفوق ويتميز به عن غيره
1- تم حل مشكلة نقل القاعدة وعدم نقل البيانات
2- تم حل مشكلة نقل البيانات كعلامات ؟؟؟؟
3- تم حل مشكلة ترك بعض الجداول او الحقول بدون تغير ترميزها مثل حقلي title و text في جدول post للفيبولتن
4- لم يعد هناك ملف كونفج ولكن ترفع وتبدأ العمل وتدخل بياناتك من خلال المتصفح
5- شرح كامل طوال خطوات العمل لما يتم عمله وتوضيح كل شئ لك
6- التحويل من وإلي الترميز بدون اخطاء فيمكنك تحويل منتداك من اليونيكود للترميز العربي بدون مشاكل
7- لم تعد بحاجة لدخول phpmyadmin وعمل نسخ للتوصيف فالسكربت يقوم بذلك بدقة
8- تقرير في نهاية التحويل هل التحويل تم بنجاح ام هناك جداول او حقول او بيانات مفقودة
9- وضعت قوالب منفصلة html وملف لغة تجهيز لإصدار فيما بعد بعدة لغات ولعدة ترميزات اخري


شرح استخدام سكربت تحويل قاعدة البيانات إلي utf

1- أرقع ملفات السكربت علي موقعك

2- أفتح ملف session.php وضع فيه كلمة سر لتبدأ بها العمل ( هذا للأمان حيث لو نسيت ملفات السكربت علي موقعك لا يفتحه ويخرب لك الشغل اي زائر )

3- افتح الرابط الرئيسي للسكربت


4- ادخل محتوي session.php وأكمل

5- ادخل بيانات قاعدة البيانات التي تريد تحويلها

6- ادخل بيانات قاعدة بيانات اخري تقوم بعملها وتكون خالية لعمل عليها بعيداً عن قاعدة البيانات الخاصة بك ثم ادخل الترميز الذي تريد التحويل منه وليكن windows-1256 ثم الترميز الذي تريد التحويل له وليكن utf-8 ثم حدد هل الجداول في قاعدة البيانات لديك latin ام لا
يمكنك معرفة ذلك بالدخول لل phpmyadmin واسعراض قاعدة البيانات الخاصة بك لتري الترميز علي الفور

7- وافق علي نقل التوصيف

8- وافق علي بدأ نقل الداتا بعد تحديد عدد المدخلات لكل دورة ( أجعله أقل من 5000 لو كان منتداك او موقعك فيه بيانات كثيرة جدا وخاصة جدول post للفيبولتن ) وأترك العمل حتي يتم

9- قم بعمل ريبير للقاعدة بعد الأنتهاء من التحويل ليتم تحديث بيانات الأندكس ( يتم عمل ذلك في السكربت ولكن لزيادة الأمان )

بعد الأنتهاء اضغط علي زر اجراء التقرير ولو حدث معك خطأ أنقل لنا تقريرك هنا لأراجعه


ماذا بعد تحويل قاعدة البيانات ؟

من المفروض ان مهمتي تنتهي عند تحويلك لقاعدة البيانات والنظر بداخلها لتجد كل شئ عربي ولكن هناك خطوات اخري يجب ان تقوم بها وهي

1- تحويل جلب البيانات من الداتا بيز

يجب عليك بعد التحويل أن تزيد تعليمة سكول في الصفحة وهي

mysql_query("SET NAMES utf8");

أو لو كنت علي نفس الترميز فتكون

mysql_query("SET NAMES cp1256");

أبحث عن ملف إتصال الداتا بيز في سكربتك وزود هذه التعليمة بعد التعليمة

mysql_select_db()

والتي ستجدها لديك بكل تأكيد

دائما ما تكون ملفات الداتا بيز موجودة في مجلد include وإسم الملف يكون database.php أو mysql.php أو ما شابهها


2- تحويل الترميز في صفحة العرض

يجب أن تحوي صفحتك علي ميتا تاج بالترميز الجديد فبدل

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />

يجب أن يكون

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ستجدها غالبا في ملفات التمبلت في تملت ال header
أو ربما تجده متغير وقيمته في ملف اللغة


3- تحويل ملفات اللغة

لو كانت ملفات اللغة في قاعدة البيانات مثل الفيبولتن فسيقوم السكربت بتحويلها لك ولا تقلق


لو كانت ملفات اللغة منفصلة في مجلد language عليك أن تفتح ملفات اللغة كلها وتحفظها من جديد بترميز اليونيكود

وذلك بفتح الملف بمحرر متقدم وليكن editplus ثم عمل save as ثم تختار الترميز utf-8 وتوافق علي الحفظ

ثم تعيد رفع ملفات اللغة فوق القديمة

اما لو كانت اللغة مبعثرة داخل السكربت كبعض السكربتات الخاصة فعليك ان تحول كل صفحات السكربت التي تحوي نصوص عربية

أنتهي التحويل

مثال

تحويل منتدي فيبولتن vb الي utf8

طريقة تحويل ترميز منتدي vb3 من windows-1256 إلي UTF8

قبل كل شئ قم بغلق المنتدي ثم تفريغ دليل البحث من تحديث العدادات وعند بلوك تحديث عداد البحث ستجد رابط لتفريغ دليل البحث اضغط عليه ووافق

ثم قم بالدخول لخيارات المنتدي - خيارات المدقق الأدبي وقم بتفريغ ( منقح حروف ال ASCII الفارغة ) ازل كل ما فيه وأحفظ الخيارات

الخطوة الأولي نفس الخطوة بالأعلي وهي السكربت وتحويل القاعدة ثم بعد الأنتهاء ضع بيانات قاعدة البيانات الجديدة ( المحولة ) في ملف الكونفج للمنتدي ولا تنسي لو حدث معك اي مشكلة في المنتدي فيما بعد يمكنك وضع القديمة لتعود كما كنت بدون فقدان شئ

الخطوة الثانية لعملها ستفتح ملف config.php الخاصة بسكربت الفيبولتن والموجودة في مجلد ال include وتبحث عن

// $config['Mysqli']['charset'] = 'utf8';

وتزيل من أمامها ال // لتصبح فعالة

الخطو الثالثة لعملها ستذهب للوحة تحكم الفيبولتن ثم اللغات و العبارات ثم إدارة اللغة ثم أمام كل ملف لغة لديك تضغط [تعديل الخيار‎] ثم

تغير الترميز من عند نوع اللغة تضع الترميز الجديد وهو utf-8

الخطوة الرابعة لا تحتاجها لكون اللغة موجودة في قاعدة البيانات

هناك تطبيقات يجب عملها بعد الإنتهاء

ارفع مجلد ال install الخاص بنسختك داخل المنتدي

أرفع ملف tools.php اللي يكون في مجلد اسمه do_not_upload داخل المجلد install

أفتح الملف من خلال متصفحك ثم حدث الخيارات ومجموعات الأعضاء والكوكيز

بعد ذلك سجل الدخول لمنتداك وحدث العدادات وخاصة البحث

مثال أخر

تحويل سكربت 4image الي utf8

الخطوة الأولي نفس الخطوة بالأعلي وهي التحويل بالسكربت ووضع بيانات القاعدة الجديدة

الخطوة الثانية لعملها ستفتح ملف db_mysql.php الموجود داخل مجلد include وتضع فيه الكويري

mysql_query("SET NAMES utf8");

قبل

return $this->connection;

مباشرة

الخطو الثالثة لعملها ستذهب لملف اللغة المسمي main.php الموجود في مجلد اللغة الخاصة بك داخل المجلد lang

ستجد متغير اسمه

كود PHP:

$lang['charset'] = "windows-1256";

غيره ل

$lang['charset'] = "utf-8";

وستجد أيضا في ملفات القوالب الخاصة بتصميمك قالب header

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />

يجب أن يكون

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

الخطوة الرابعة

حمل كل ملفات مجلد اللغة داخل المجلد lang وحولها بمحرر متقدم


أنتهي


أسئلة واجابتها بشأن عمل تغير ترميز قاعدة البيانات

س: حولت المنتدي فهل سأحتاج لعمل شئ فيما بعد ؟
ج: نعم لو حملت هاك معرب عليك تحويله الأول قبل رفعه من البرودكت في منتداك وتحويله يكون مثل تحويل ملفات اللغة بفتح بمحرر متقدم وإعادة حفظه باليونيكود

س: ما قائدة التحويل الي ترميز utf8 ؟
ج: سيخدمك ذلك في الاجاكس وفي محرك البحث للسكربت وفي عرض العربي في الروابط بدون مشاكل

س: ما هي أضرار التحويل الي utf8 ؟
ج: التحويل كله فوائد ولكن هناك ضرر واحد بسيط وهو زيادة حجم القاعدة مرة ونص إلي مرتين وهذه ليست مشكلة بالمرة

س: وصل التحويل عند الجدول post وأصبح بطئ جدا وأرتفع اللود ؟
ج: أوقف العمل وأعده من جديد مع تقليل عدد المدخلات من 5000 ل 1000

انتهي الموضوع وجزاه الله كل خير الاخ الفاضل مبرمج الاسكربت "المحب لله ورسوله"

تحميل سكربت تحويل ترميز قاعدة البيانات


أو من المرفقات

لكم خالص التحية والتقدير
 

المرفقات

أحدث المواضيع

أعلى