السلام عليكم ورحمة الله وبركاته
لدي مشكلة عند قراءة البيانات من قاعدة البيانات Mysql
برمجة جزئية خاصة باستيراد بيانات من ملف csv عن طريق php
عند قراءة البيانات مباشرة من ملف csv وعرضها على المتصفح تظهر بشكل صحيح
لكن بعد تخزينها في قاعدة البيانات Mysql ثم قرائتها من mysql وعرضها في المتصفح تظهر اللغة العربية علامات استفهام
علما أن جربت نوع الترميز utf8_general_nopad_ci و utf8_unicode_ci
ارجو من لديه الحل يفيدني وشكرا
التعليقات
مرحبا،
يمكن أن تكون المشكلة إما في php أو HTML بالإضافة لـ mySQL لأن البيانات تمر على جميع هذه اللغات.
في الملف php الذي يتصل بقاعدة البيانات يمكنك تحديد الترميز مباشرة كالتالي:
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8', $link);
في المخدم الخاص بك يمكنك تغيير الترميز الخاص ب php عن طريق تعديل الملف: php.ini ووضع الترميز الافتراضي كما يلي: default_charset = "utf-8"; للتأكد من عمل الترميز يمكنك تنفيذ الدالة التلية في ملف php تجريبي وسيعطي معلومات الترميز (أرجو إعادة تشغيل السيرفر).
phpinfo();
في حال استمرار المشكلة يمكنك تضمين التالي في ملفات php التي تتعامل مع الخرج echo وقاعدة البيانات
header('Content-Type: text/html; charset=utf-8');
وهذا سيغير ترميز البيانات المرسلة للمتصفح للشكل المطلوب.
في صفحات HTML يفضل وضع التعليمة التالية في head الصفحات:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
وتحديد نمط البيانات الممرر من form في حال الكتابة بالعربية كالتالي:
<form accept-charset="utf-8">
بالتوفيق