النتائج 1 إلى 3 من 3

الموضوع: ملاحظة مهمة حول phpmyadmin , اللغة العربية , الترميز UTF-8

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509

    Exclamation ملاحظة مهمة حول phpmyadmin , اللغة العربية , الترميز UTF-8



    السلام عليكم اخواني ...

    اردت ان اشارككم بعض الملاحظات المهمة حول الموضوع الذي طرح كثيرا في الاونة الاخير في قسم php في منتديات سوالف سوفت والذي يتعلق ببرنامج ادارة قواعد البيانات phpmyadmin عند تصدير او استيراد قواعد بيانات تحوي اللغة العربية .

    حدثت مشاكل ؟؟ والكثير اعطى الحلول ؟؟ وانا شخصيا جربت الحل التالي :

    كود PHP:
    mysql_query("SET CHARACTER SET utf8");  
    mysql_query("SET NAMES utf8"); 
    وفي البداية هالحل ما نفعني وما زبط ولكن في الحقيقة هو الحل الامثل لهالمشكلة ... والمشكلة ببساطة هي عدم ظهور اللغة العربية بالشكل المطلوب في phpmyadmin وانما تظهر بشكل رموز غير مفهومة او علامات سؤال .

    المشكلة من القاعدة التي بحوزتنا وليست بالاستعلام والسبب ان جميعنا في البداية لم نكتب هذا الاستعلام في ملف الاتصال والذي حدث هو اننا اصبحنا نضيف البيانات للقاعدة ودخلت البيانات على شكل رموز او علامات سؤال ... وعندما تخرج تكون تمام كما نريد ... ولكن عند استعراضها في phpmyadmin تكون بعكس ما نريد ... بعد فترة من تجربة السكربت وكلو تمام اصبحنا نواجه مشاكل احيانا وظهرت الحاجة للدخول لـ phpmyadmin ومعاينة البيانات من داخله ولكنها لم تظهر كما نريد ...

    دخلت البيانات للقاعدة بترميز معين (ليس UTF-8) وحفظت بداخل القاعدة بهذا الترميز ونريد ان تظهر البيانات بالشكل المطلوب فقمنا باستعمال الاستعلام الذي ذكر في البداية ولكنه لم ينجح والسبب بان هذا الترميز يعالج البيانات ذات الترميز UTF-8 فقط .

    الحل : يجب ان نكتب هذا الاستعلام قبل اضافة اي بيانات للقاعدة فعندها سوف تدخل البيانات بالترميز UTF-8 وتظهر البيانات التي بالعربية بالشكل المطلوب في phpmyadmin وعندما نصدر القاعدة تظهر البيانات ايضا باللغة العربية بدون شوائب وعندما نريد استيراد القاعدة من جديد لن نواجه اي مشاكل .


    قسم كبير من الاخوة والذين يستعملون سكربتات عالمية مثل 4images ترميز القاعدة الافتراضي لهذا السكربت ليس UTF-8 والذي يحدث ان المستخدم عندما يطلب ملف التنصيب لهذا السكربت او غيره فانه ينصب جميع البيانات في القاعدة بترميز غير UTF-8 ولكننا نكمل ونقوم بادخال البيانات وفجأة نطالب برؤية البيانات بترميز UTF-8 لأنه الوحيد الذي يظهر اللغة العربية بتوافق تام مع جميع السكربتات وجميع الانظمة .

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

    كود PHP:
    TYPE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
    ونقوم باضافة هذا السطر بعد عرض PRIMARY KEY ... مثال :

    كود PHP:
    PRIMARY KEY  (`id`)
    TYPE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

    وطبعا جميع ما قيل في هذا الموضوع يخص الاخوة المعنيين باستعمال الترميز UTF-8 في برمجياتهم او الذين يريدون ان تظهر اللغة العربية بشكل صحيح في phpmyadmin وانا قمت بكتابة هذا الموضوع على اعتبار بان كلا الطرفين من الاخوة يعلمون جيدا بان هناك خطوات تسبق خطوات التعديل في قواعد البيانات وملف الاتصال وهي تحويل جميع ملفات السكربت الى الترميز UTF-8 مع حذف علامة ترتيب البايت Byte ordr mark - BOM وهذا يحتاج لاحد المحررات التي تدعم هذه الخاصية مثل Dreamweaver او Notepad ++ او EMeditor الذي استعمله شخصيا .


    اخوكم : EbNCaNa


    في امان الله .





    التعديل الأخير تم بواسطة EbNCaNa ; 28-08-2008 الساعة 02:33 PM
    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jun 2008
    المشاركات
    81


    أخي EbNCaNa اشكرك على الطرح
    وانا استخدم نفس الكود على فكرة في احد السكربتات
    ولكن عندي سكربت المشكلة ان القاعدة جاهزة وعندما اضيفها اترميز utf-8 ما في مشاكل وتضهر في phpmyadmin عربية وكل شي تمام وصفحة السكربت بتنسيق utf-8 لكن عندما ادمجها في الموقع الحروف اللي مكتوبة في الصفحة تظهر تمام ولكن اللي نقوم بجلبها من القاعدة تجيني علامة ؟؟؟؟؟ يا ترى إش الخلل في الموضوع ياريت القى الحل عندك واشكرك على تعاونك الدائم






  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    3,929


    موضوعك قيم جدا كعادة مواضيعك القديمة
    وقدر الله اني قبل قراءة هذه السطور .. بحثت كثيرا في جوجل عن الـ byte order mark
    ولم اوفق في الاستفادة من المراجع الاجنبية كون لغتي ليست بالحالة الصحية الجيدة
    وبفضل الله عزوجل ثم فضلك علي وجدت مقالتك التي تتحدث عن هذا الامر
    المشروع - تطوير المواقع

    واستفدت منها كثيرا جدا .. اشكرك جدا عليها





    __________________
    تحاور مع العاقل بعقل .. اما ان يقتنع او تقتنع
    وتحاور مع الجاهل بعقل .. اما يطقعش او تفرقش
    وتلك الفاظ لا معنى لها كذلك كلماته





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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