من الموقع: STC تطلق خدمةالتلفزيون التفاعلي المطور (انفجن) وتتيحها خلال شهر رمضان المبارك

 

العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط جدا
#1  
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 اخوكم ابن قانا 

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

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

آخر تعديل بواسطة EbNCaNa في 28-08-2008 الساعة 03:33 PM.
EbNCaNa is offline   قديم 28-08-2008, 03:30 PM
الرد مع إقتباس
عضو نشيط
#2  

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






__________________
( رابط ) هل تبحث عن وظيفة محترمة 
( رابط ) http://www.tunisianhr.com 
mamadou is offline   قديم 18-01-2009, 07:12 AM
الرد مع إقتباس
عضو فعال جدا
#3  

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

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






سحاب اون لاين is offline   قديم 18-01-2009, 07:20 AM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
للنقاش والتفكير: الـ phpmyadmin واللغة العربية بترميزي UTF-8 و Windows1256 life الشبكات والخوادم وقواعد البيانات 2 23-08-2008 07:19 PM
مشكله فى الترميز utf-8 - تركيب الهاكات وملف اللغة التائب الى الله الإصلاح والصيانة 4 02-08-2008 05:28 PM
اللغة العربية في MySQL لا تظهر مع أنه UTF-8 design360 الويب والويب 2.0 والتجارة الالكترونية 11 19-05-2007 01:40 PM
مشكلة الترميز وقراء العربية [PHPMYADMIN] scripts الويب والويب 2.0 والتجارة الالكترونية 8 02-12-2005 03:59 PM
اللغة العربية و phpmyadmin ؟؟ الاحتراف PHP 1 12-05-2005 07:39 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 04:04 PM.