حل مشكلة الترميز UTF-8 واللغة العربية - قواعد بيانات MYSQL
عندما تبرمج موقعاً بيدك كاملاً ستواجه مشاكل عدة، من هذه المشاكل: عند إختيارك الترميز UTF-8 لقواعد البيانات والعمل على اللغة العربية. يظهر المحتوى العربي في الموقع على شكل علامات إستفهام!
حسناً لا يأس مع الحياة :P. تستطيع حل المشكلة بإضافة إستعلام MYSQL هذا كي ينفذ مباشرة بعد الإتصال بقواعد البيانات:
set character_set_server='utf8';
set names 'utf8';
أو مثال على إستخدامها في لغة PHP (شكراً للأخ أحمد على التنبيه):
<?php mysql_connect($db_hostname, $db_username, $db_password); mysql_query("set character_set_server='utf8'"); mysql_query("set names 'utf8'"); // The rest of you php code! ?>
ويفضل إستخدامه مباشرة بعد الإتصال بقاعدة البيانات.
أحيانا هذا الكود لا يحل المشكلة فنجرب الكود التالي بدلاً منه:
set names 'utf8';
أو بلغة php:
<?php mysql_connect($db_hostname, $db_username, $db_password); mysql_query("set names 'utf8';"); // The rest of you php code! ?>
كما أن هناك بعض الخطوات التي يجب أن تتبعها قبل أن تعتمد هذا الحل وهن:
- جميع ملفاتك الخاصة بالموقع سواء كانت [[PHP]] أو [[HTML]] يجب أن تحمل الترميز UTF-8. ولا تنسى أيضاً كتابة نوع الترميز في ترويسة ملفات [[HTML]].
- قاعدة البيانات يجب أن تكون بترميز UTF-8 ومن النوع utf8_unicode_ci ولا تجرب أن تختار غيره فالنتيجة غير مضمونة.
إذا لم تحل المشكلة إخبرني :)
تقبلو تحيتي