حل مشكلة تخزين اللغة العربية في قواعد بيانات MySQL

 

للنقاش الموضوع الاصلي هنا

وحدة من مشاكل تعلم البرمجة عند الناس هي كيف تبرمج، لكن عندنا يالعرب مشكلة ثانية اصعب وهي التعامل مع اللغة العربية أو اليونيكود في البرامج. أحيانا لما ابرمج شغلة اخلصها بسرعة لكن يروح وقت اكثر من البرمجة نفسها في محاولات حل مشكلة العربي والونيكود. لهذا السبب قلت اكتب الشرح هذا في طريقة تخزين العربي في قواعد بيانات MySQL عن طريق لغة برمجة PHP.

Screenshot-276

الخطوات بسيطة وما راح تاخذ منك اكثر من دقايق لحل المشكلة كاملة ::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::4

طريقة حل مشكلة العربي واليونيكود unicode في قواعد بيانات MySQL باستخدام البي اتش بي

تغيير نوع قاعدة البيانات إلى اليونيكود المناسب

By default, MySQL makes all tables and the Collation as utf8_unicode_ci. You should change this for all your unicode columns to utf8_general_ci.
في الوضع الإفتراضي, ماي اس كيو إل راح ينشيء الجداول والخانات تحت ترميز utf8_unicode_ci. الترميز هذا ما يشتغل ويجب تغييره إلى ترميز utf8_general_ci.

Screenshot-278

 

جعل اتصال الـphp لقاعدة البيانات متوافق مع العربي واليونيكود

هنا كانت النقطة اللي تطلبت مني بحث مكثف وما حصلت احد بالمواقع يتكلم عنها. نقطة بسيطة جدا لحل مشكلة العربي في البرمجة والتخزين. المطلوب انك تجعل اتصال البي اتش بي يقبل اليونيكود قبل ما تبدأ اوامر التخزين. هنا الطريقة:

هذا الكود اللي بالعادة نكتبه لما ننشئ اتصال بين البي اتش بي وقاعدة البيانات

@mysql_connect($DB_host, $DB_user, $DB_pass) or die("Could not connect!");
@mysql_select_db($DB_name) or die("Could not select database!");

الطريقة ببساطة انك تظيف الأمر mysql_set_charset('utf8'); بعد ما تنشئ الاتصال بقاعدة البيانات مباشرة. هنا يكون شكل الكود:

@mysql_connect($DB_host, $DB_user, $DB_pass) or die("Could not connect!");
mysql_set_charset('utf8');
@mysql_select_db($DB_name) or die("Could not select database!");

 

تخزين ملف البي اتش بي بصيغة يونيكود

أيضا هذه النقطة كانت من الأشياء اللي تطلبت مني وقت لحلها. بكل بساطة لما تخزن ملف البي اتش بي نفسه لازم تخلي الترميز حقه ترميز يونيكود. كل برنامج طبعا له طريقته، وانا البرنامج اللي استخدمه هو NotePad++ وهنا طريقة التحويل:

Screenshot-279

 

 

طبعا لا تنسى اذا كنت تبي تعرض عربي في المتصفح انك تكتب الميتا تاق المناسب داخل تاق الـ head. وهذا المطلوب كتابته:

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

وأيضا اذا كان عندك خانات يدخلها المستخدم لازم في تاق الـ form تحط الخاصية التالية:

accept-charset="utf-8"

هذا كل اللي تحتاجه لحل مشكلة اللغة العربية في قواعد بيانات MySQL ولغة برمجة PHP. اكتب لي اذا الشرح هذا حل مشكلتك، أو اذا واجهتك أي مشاكل. وطبعا تقدر تنشر الشرح هذا عن طريق الأزرار اللي تحت علشان تفك أزمة شخص ثاني وتخليه يدعي لنا

 

الكاتب Geek4Arab

Geek4Arab

مواضيع متعلقة

اترك رداً