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

استرجاع اللغة العربية فى صفحات بى اتش بى

مغلق
بدأه hany321 في 30 مارس 2007 · 2 رد · 1,512 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الافاضل أعضاء المنتدى

قمت بتصميم صفحات بى اتش بى تتصل بقواعد البيانات لاسترجاع سجلات مكتوبة باللغة العربية داخل قواعد البيانات Mysql

و كان الناتج هو ظهور السجلات بطريقة ??????????????? ???????

و الغريب سبب ذلك على الرغم من اننى استخدم Dreamwaver و ان ال Encoding هو Arabic - windows

ياريت تساعدونى فى هذه المشكلة التافةة التى تغيظ

جزاكم الله كل الخير

#2

مرحبا بك اخي هاني :

اولا مشكلة الترميز للغة العربية بالفعل هي مشكلة تغيظ في البداية ولكن عن التوصل للحل يتغير بعد ذلك الإنبطاع الذي كان لديك على علامات استفها ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ لان مشكلة الترميز لديك قد حلت .... :lol:

على العموم :

mysql الإصدارات السابقة ماقبل الإصدار الرابع كانت لا تدعم تعدد الغات في عملية الخزن وبذلك كانت تتبع طريقة واحده في خزن البيانات بغظ النضر عن اللغة التي تستخدمها انت سواء اكانت عربية او غيره ...

ولان طريقة حفظ الحروف تختلف من لغة إلا اخرى لذلك كان لا بد من وجود حل يعالج هذه المشكلة وهي توافق حفظ اللغة ولكي يعرف محرك قاعدة البيانات اي لغة يجب عليه ان يتعامل معها وياخذ في ذلك الإعتبارات المترتبه على اللغة .. كان لا بد لـ MY Sql ان توجد طريقة كما هي موجودة في قواعد البيانات الأخرى وهي تحدد الجدول الخاص بك او قاعدة البيانات الخاصة بك ما هي اللغة التي سوف تتعامل معها ..

لذلك عند العمل على إصدارات الحديثة من قاعدة البيانات mysql يجب عند انشاء قاعدة البيانات تحديد المحارف التي سوف تتعامل معها هذه القاعدة وتحدد ايضا لكل جدول اللغة التي سوف تحفظ فيه حتى ايضا على مستوى الحقول فيمكن ان تحدد على مستوى الحقل او العموم بالطبع فهوا نفس المعنى اي لغة يجب ان يتعامل معها المحرك ....

نحن العرب لدينا معيار عالمي وهوا utf-8 هذا يعبر عن الترميز العربي .. وايضا قامت شركة Microsoft بعمل ترميز خاص للغة العربية وهوا windows-1256 هذا الترميز تدعمة قاعدة البيانات Mysql نحن اسم cp1256 وهذا الترميز يحدد نوع اللغة وهي العربية التي يجب ان يتعامل معها محرك قاعدة البيانات وبذلك سوف تضمن ان النتائج سترجع من القاعدة على التنسيق العربي الصحيح ... إذا لم تقم بإدخال او تحديد الترميز فإن mysql سوف تفرض الترميز تلقائيا على الترميز لااتين laten وبذلك لن يدعم هذا الترميز العربية مطلقا ... إلا في بعض الحالات ولكن سوف تواجه مشاكل ان الترميز قد يهمل بعض التنسيقات العربية .

ولكي تخبر ايضا محرك الإتصال بقاعدة البيانات لعمل حسابة على طريقة ارجاع البيانات يجب ان تخبر الـ Mysql ان يرجع البيانات بالتنسيق العربي عند الإستعلام او الإدخال .. لذلك وجدت طريقة لعمل هذا ..

عند انشاء الجدول يجب ان تحدد collation الخاص بالإتصال ..

لمعرفة مجموعة الترميز في Mysql استخدم الإستعلام التالي :

show character set;

سوف تجد من ضمن النتائج :

cp1256   | Windows Arabic

لأنشاء قاعدة البيانات ويظا الجداول وتحديد الترميز على اللغة العربية :

CREATE DATABASE arabic_db CHARACTER SET cp1256;

CREATE TABLE al3ndaleeb
(
	f1 CHAR(10) 
) DEFAULT CHARACTER SET cp1256;

هذا فيما يخص عملية الإنشاء .....

لكي تجلب البيانا عن طريق الترميز يجب ان تخبر mysql عند الإتصال وقبل اي استعلام ان يغير المحارف عند جلب البيانات حسب الترميز العربي كما يلي :

set character_set_server='cp1256';
set names cp1256;

وبذلك سوف تنتهي مشكلة ضهر البيانات على شكل ???

تحياتي لك و بالتوفيق .

#3

الاخ الكريم

شكرا ً على ردك المستفيض

المشكلة تقابلنى فى البيانات التى تم استرجاعها من Mysql بواسطة صفحات Php

و أريد حل عملى يتيح لى التعامل مع اى لغة سواء انجليزى أو عربى داخل نفس الجدول الموجود

الف الف شكر مرة أخرى

هذا الموضوع مغلق.

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

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

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

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

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