السلام عليكم ورحمة الله وبركاته
افوم بحفظ بيانات بالعربى فيتم حفظها وعند عرضها تظهر برموز غريبة
شكراً
السلام عليكم ورحمة الله وبركاته
افوم بحفظ بيانات بالعربى فيتم حفظها وعند عرضها تظهر برموز غريبة
شكراً
اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد
من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن
يتم الحفظ في قاعدة البيانات؟ ما هو الترميز المستخدم؟
استخدم تعريف اللغة على هيئة
UTF-8
تحياتي
وَعَبْدٌ قَدْ يَنامُ عَلَى حَرِيرٍ ××× وَذُو نَسَبٍ مَفَارِشُهُ التُّرَابُ
header('Content-Type: text/html; charset=windows-1256');يجب ان يكون في بداية صفحة العرض
تم تعديل هذه المشاركة بواسطة X-File في 23 أغسطس 2010 في 00:21
In bad state
مش تنتظروا الراجل يجاوب على سؤال herch بالأول ويقول هو بيعمل ايه ![]()
معلش... حمّى النقاط ![]()
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
نعم اقوم بالحفظ فى قاعدة البيانات
والترميز المستخدم هو واقوم بوضعه فى صفحتى الحفظ والعرض
<head> <meta http-equiv="Content-Language" content="ar-eg"> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> </head> وايضا جربت السطر التالى <meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
ولكن بلا فائدة
اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد
من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن
جرب إضافة السطر التالي بعد فتح الإتصال مع سيرفر البيانات واختيار القاعدة
mysql_set_charset('utf8');السلام عليكم
تأكد أن يكون ترميز قاعدة البيانات و ترميز الجدول المحتوي على البيانات العربية هو ui_unicode_utf8
وبعد انشاء الاتصال بقاعدة البيانات اضف السطر التالي :
mysql_query("Set Names utf8");حيث هذا السطر يعادل الثلاث اسطر التالية :
mysql_query("SET character_set_client = utf8");
mysql_query("SET character_set_results = utf8");
mysql_query("SET character_set_connection = utf8");بتوفيق الله ..
تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 23 أغسطس 2010 في 01:19
Everything will be fine when we TALK LESS, DO MORE
اقتباسThis is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.
herch كتب:
+1
شكرا لك أخي العزيز :)
ولكن أخي لدي سؤال لو سمحت .
هل
mysql_set_charset == mysql_query("SET character_set_client = utf8");فكما رأيت هنا
اقتباسmysql_set_charset
(PHP 5 >= 5.2.3)
mysql_set_charset — Sets the client character set
فأنا عادة في الأمور الخاصة بالتعامل مع قاعدة البيانات لا ابحث عن ما توفره اللغة بل ما تحتاجه قاعدة البيانات في أمر معين
لذلك راجعت Mysql سابقاً لأعرف ما الأمور التي تطلبها لتحقيق اتصال قائم على utf8 و وجدت أنها تحتاج الأمور الثلاثة السابقة فإن كانت هذه الدالة تحققها جميعها حقاً
فجزاك الله كل الخير
تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 23 أغسطس 2010 في 02:25
Everything will be fine when we TALK LESS, DO MORE
هذه الجملة
اقتباسmysql_set_charset — Sets the client character set
لا تعني بالضرورة أن الدالة تغير فقط character_set_client.. إذا نزلت ثلاث أسطر للأسفل فستجد الجملة التالية
اقتباسSets the default character set for the current connection.
هنا لا يحددون ما يتم تغييره بالضبط.
على العموم، أفضل دائما التقيد بما تقوله ال documentation الحاصة بكل لغة، وأستعمل هذه الدالة دائما عند جلب بيانات من قاعدة البيانات.
لم اجد ترميز لقاعدة البيانات والجدول غير
utf8_unicode_ci
فقمت بتغييره واضافة السطر التالى
mysql_set_charset('utf8');
ولكن مازالت المشكلة قائمة
اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد
من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن
امجد مختار كتب:لم اجد ترميز لقاعدة البيانات والجدول غير
utf8_unicode_ci
فقمت بتغييره واضافة السطر التالى
mysql_set_charset('utf8');
ولكن مازالت المشكلة قائمة
نعم هذا هو الترميز الذي قصدته في قاعدة البيانات قد اخطأت بكتابة اسمه بحكم النسيان ![]()
هل تأكدت من وضع الدالة بعد دوال الاتصال بقاعدة البيانات و قبل الاستعلام ؟
بعد هذه التعديلات ما هو ترميز الصفحة التي تعرض فيها نتائج الاستعلام؟
تأكد أن يكون ترميز الصفحة هو UTF-8
الآن ضع هذا السطر :
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head>
بتوفيق الله ..
تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 23 أغسطس 2010 في 21:01
Everything will be fine when we TALK LESS, DO MORE
لحل هذه المشكله تأكد من ثلاث أمور
1- الحقل الذي تستخدمه بترميز utf
2- الصفحة التي تخزن من خلالها البيانات تكون بترميز utf
3- الصفحة التي تعرض فيها البيانات تكون بترميز utf
أي يجب أن يكون الترميز واحد في جميع الحالات التي ستقوم بها بالإتصال ولن تحتاج لتعريف الترميز فقط إتصال بقاعدة البيانات وعرضها
تطور الوضع ولكن بتظهر علامات استفهام بدل من رموز غريبة
فما الحل ؟
فعلت ذلك ولكن للاسف مازالت المشكلة قائمة
اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد
من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن
السلام عليكم
أخي العزيز حاول ان تفتح جدول قاعدة البيانات بإستخدام phpMyadmin في حال ظهرت الكتابة العربية فهذا يعني أن لديك مشكلة في الصفحة التي تعرض البيانات في برنامجك. أما اذا ظهرت على هيئة استفهامات فهذا يعني أنه مازال لديك مشكلة في صفحة الإدخال او في ترميز قاعدة البيانات.
و لا اعتقد ان هناك ما يمكن إضافته بعد ما تفضل به الأخوة فإن اتبعته يفترض ان تسير الأمور على نحو ممتاز.
و كما قال الأخ MoHaMMaD Pro
هل تأكدت من وضع الدالة بعد دوال الاتصال بقاعدة البيانات و قبل الاستعلام ؟
فهذا مهم جداً
فيما عدا ذلك تحقق أن كل من صفحة الإدخال و العرض بترميز UTF8 .
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…