الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حفظ بيانات بالعربى

بدأه امجد مختار في 22 أغسطس 2010 · 16 رد · 853 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

افوم بحفظ بيانات بالعربى فيتم حفظها وعند عرضها تظهر برموز غريبة

شكراً

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#2

يتم الحفظ في قاعدة البيانات؟ ما هو الترميز المستخدم؟

#3

استخدم تعريف اللغة على هيئة

UTF-8

تحياتي

وَعَبْدٌ قَدْ يَنامُ عَلَى حَرِيرٍ ××× وَذُو نَسَبٍ مَفَارِشُهُ التُّرَابُ

#4
header('Content-Type: text/html; charset=windows-1256');

يجب ان يكون في بداية صفحة العرض

تم تعديل هذه المشاركة بواسطة X-File في 23 أغسطس 2010 في 00:21

In bad state

#5

مش تنتظروا الراجل يجاوب على سؤال herch بالأول ويقول هو بيعمل ايه laugh.gif

معلش... حمّى النقاط laugh.gif

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

نعم اقوم بالحفظ فى قاعدة البيانات

والترميز المستخدم هو واقوم بوضعه فى صفحتى الحفظ والعرض

<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" />

ولكن بلا فائدة

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#7

جرب إضافة السطر التالي بعد فتح الإتصال مع سيرفر البيانات واختيار القاعدة

mysql_set_charset('utf8');
#8

السلام عليكم

تأكد أن يكون ترميز قاعدة البيانات و ترميز الجدول المحتوي على البيانات العربية هو 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

2 −1

Everything will be fine when we TALK LESS, DO MORE


#9

mysql_set_charset

اقتباس
This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.

1
#10
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

1

Everything will be fine when we TALK LESS, DO MORE


#11

هذه الجملة

اقتباس
mysql_set_charset — Sets the client character set

لا تعني بالضرورة أن الدالة تغير فقط character_set_client.. إذا نزلت ثلاث أسطر للأسفل فستجد الجملة التالية

اقتباس
Sets the default character set for the current connection.

هنا لا يحددون ما يتم تغييره بالضبط.

على العموم، أفضل دائما التقيد بما تقوله ال documentation الحاصة بكل لغة، وأستعمل هذه الدالة دائما عند جلب بيانات من قاعدة البيانات.

1
#12

بارك الله بك و جزاك الله خيراً

1

Everything will be fine when we TALK LESS, DO MORE


#13

لم اجد ترميز لقاعدة البيانات والجدول غير

utf8_unicode_ci

فقمت بتغييره واضافة السطر التالى

mysql_set_charset('utf8');

ولكن مازالت المشكلة قائمة

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#14
امجد مختار كتب:

لم اجد ترميز لقاعدة البيانات والجدول غير

utf8_unicode_ci

فقمت بتغييره واضافة السطر التالى

mysql_set_charset('utf8');

ولكن مازالت المشكلة قائمة

نعم هذا هو الترميز الذي قصدته في قاعدة البيانات قد اخطأت بكتابة اسمه بحكم النسيان tongue.gif

هل تأكدت من وضع الدالة بعد دوال الاتصال بقاعدة البيانات و قبل الاستعلام ؟

بعد هذه التعديلات ما هو ترميز الصفحة التي تعرض فيها نتائج الاستعلام؟

تأكد أن يكون ترميز الصفحة هو 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


#15

لحل هذه المشكله تأكد من ثلاث أمور

1- الحقل الذي تستخدمه بترميز utf

2- الصفحة التي تخزن من خلالها البيانات تكون بترميز utf

3- الصفحة التي تعرض فيها البيانات تكون بترميز utf

أي يجب أن يكون الترميز واحد في جميع الحالات التي ستقوم بها بالإتصال ولن تحتاج لتعريف الترميز فقط إتصال بقاعدة البيانات وعرضها

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#16

تطور الوضع ولكن بتظهر علامات استفهام بدل من رموز غريبة

فما الحل ؟

فعلت ذلك ولكن للاسف مازالت المشكلة قائمة

اللهم اهدنا فيمن هديت - اللهم صلى على سيدنا محمد

من أراد الدنيا فعليه بالقرآن ومن أراد الآخرة فعليه بالقرآن ومن أرادهما معاً فعليه بالقرآن

#17

السلام عليكم

أخي العزيز حاول ان تفتح جدول قاعدة البيانات بإستخدام phpMyadmin في حال ظهرت الكتابة العربية فهذا يعني أن لديك مشكلة في الصفحة التي تعرض البيانات في برنامجك. أما اذا ظهرت على هيئة استفهامات فهذا يعني أنه مازال لديك مشكلة في صفحة الإدخال او في ترميز قاعدة البيانات.

و لا اعتقد ان هناك ما يمكن إضافته بعد ما تفضل به الأخوة فإن اتبعته يفترض ان تسير الأمور على نحو ممتاز.

و كما قال الأخ MoHaMMaD Pro

هل تأكدت من وضع الدالة بعد دوال الاتصال بقاعدة البيانات و قبل الاستعلام ؟

فهذا مهم جداً

فيما عدا ذلك تحقق أن كل من صفحة الإدخال و العرض بترميز UTF8 .

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…