صباح الخير,
اليوم سوف نتحدث عن الترميز : Encoding لصفحات الإنترنت
(الكلمات التى بجوارها علامة النجمه*سوف أحاول شرحها فى نهاية المقال)
فى بعض الأحيان عندما تحاول تصفح بريدك الإلكترونى الموجود على Yahoo أو Hotmail تفاجأ بأن الرساله تظهر برموز غريبه برغم أن المُرسل شخص تعرفه أو بالرغم من كونها رساله يُتوقع أن تكون بلغة عربية
ما سبب ذلك؟
للإجابه على هذا التساؤل الذى يطرح نفسه ويجمع نفسه وأحياناً يضرب نفسه علينا معرفة بعض المعلومات
عندما يقوم شخص بتصميم(ولو أن الكلمه الأدق برمجة) صفحة تعمل على الإنترنت سواء كانت هذه الصفحه بإمتداد html (مثال index.html*) أو بإمتداد php (مثال index.php) أو بإمتداد asp (مثال index.asp)
فإذن هذا الشخص يكتب كود بأعلى الصفحه التى يبرمجها
داخل هذا الكود يحدد إسم الترميز الذى يجب أن تُعرض به هذه الصفحه أمام الزوار
الترميز الشائع فى كل أنحاء العالم للملفات التى تحتوى نصوص إنجليزيه هوiso-8859-1
ولقبه: Us/Western European
* لاحظ أن كل ترميز له إسم فعلى ولقب وسوف نركز على الإسم الفعلى فى حديثنا وليس على اللقب
الترميز السالف ذكره يستخدمه المبرمجين ومطورى المواقع الغربيين بشكل عام , حتى برامج تصميم صفحات الـ html مثل *Frontpage تستخدم هذا الترميز كترميز إفتراضى لأى صفحه بإمتداد html تقوم بإنشائها
الترميز الصحيح لعرض صفحة تحتوى نصوص باللغة العربية هوأحد الترميزين التاليين:
Windows-1256 أو UTF-8
الشائع هو الأول والأصح هو الثانى
الشائع هو windows-1256 لأن أغلب من قاموا بشرح ونشر علوم برمجة المواقع فى العالم العربى تصوروا ان هذا هو الترميز الصحيح بسبب كون برنامج frontpage يقوم بتحويل ترميز أى صفحه مكتوبه باللغة العربية إلى هذا الترميز مباشرة فتوقعوا انه الترميز الأصح
والأصح هو UTF-8 لأنه يجعل الصفحات المكتوبه باللغة العربية تظهر لديك أنت كشخص يثبت اللغة العربية فى *نظام تشغيله بشكل صحيح
وتظهر لدى أى متصفح غربى لا يثبت اللغة العربيه فى نظام تشغيله بشكل صحيح أيضا
بعكس ال windows-1256 فهو يعرض الصفحه العربية بشكل صحيح لدى المتصفح العربى ولا يعرضها بشكل صحيح لمن لم يقم بتثبيت العربية فى نظام تشغيل حاسوبه
________________________
هكذا إنتهت المرحله الأولى من إجمالى مرحلتين على مبرمج الصفحه أن يخوضهما حتى تخرج صفحته للعالم بترميز صحيح يناسب المحتوى العربى
المرحله الثانيه هى أن يكون ترميز الصفحه = الترميز المكتوب فى رأس الصفحه
أعرف أن الجمله السابقه غير مفهومه
لنضرب مثال:
إذا كان لديك تيل قماش طويل ومكتوب على أول متر فيه حرير طبيعى بأبعاد كذا فى كذا
هذا هو الترميز الذى قام بكتابته المبرمج فى رأس الصفحه
ولكن القماش فعلياً كان من النوع : بوليستر
هذا هو الترميز الحقيقى للصفحه (يمكننا مجازاً أن نقول أنه ترميز خامة الصفحه أو ملف الصفحه)
ولكى يقوم المبرمج بجعل ترميز ملف الصفحه = للترميز المكتوب عليه أن يستخدم من الأصل برنامج يكتب صفحات بالترميز الصحيح المطلوب
يعنى مثلا برنامج frontpage برنامج ذكى جدا فى هذه المسأله يقوم تلقائياً بتحويل ترميز ملف الصفحه الى الترميز الذى تكتبه أنت فى رأس الصفحه
ولكن برنامج notepad لا يحول شىء , فإذا كنت تبرمج صفحاتك بواسطته فسوف يتوجب عليك أن تفتح الصفحات فى برنامج أخر يقوم يتحويل ترميزها الى الترميز المطلوب , ومثال على هذه البرامج هو notepad ++ وهو برنامج مفتوح المصدر ومجانى
______________________
بعد أن قام المبرمج بإنهاء الخطوتين وإطمأن لكون الصفحه ترميزها صحيح سواء فى الجانب المُعلن أو فى الحقيقه سوف يقوم برفع هذه الصفحه الى موقعه لتكون جاهزه للتصفح من قبل زوار موقعه
الذين هم أنا وأنت وأخرين
فإذا كان المبرمج قام بضبط الترميز ليكون windows-1256, وكان الضبط للجانب المعلن والجانب الفعلى (الترميز المكتوب وترميز خامة الملف)
وكنت انا متصفح الصفحه مثبت لدى اللغة العربية بشكل صحيح على نظام التشغيل وكان برنامج المتصفح الذى أستخدمه لتصفح الصفحه مضبوط على أن يقرأ الترميز العربى بشكل صحيح
فسوف تظهر لدى الصفحه باللغة العربية
ولكن سوف تظهر لدى أى شخص غربى لم يقم بتثبيت اللغة العربية فى نظام تشغيله بهذا الشكل:
ÇáÏÚã ÇáÝäí æØáÈÇÊ
أما إذا توافرت كل الشروط السابقه وكان المبرمج نسى تحويل ترميز خامة الصفحه الى windows-1256 فسوف لن تظهر لدى(ولا لدى الشخص الغربى بالطبع) الصفحه باللغة العربية بل ستظهر محتوية علامات مثل
ÇáÏÚã ÇáÝäí æØáÈÇÊ
إذا رأيت تلك العلامات فإعلم أن أحد الشروط السابقه قد إختل وعليك بإصلاح الجانب الذى من ناحيتك , وهو تثبيت العربية بنظام تشغيلك و ضبط المتصفح على أن يعتبر العربية هى اللغة الإفتراضيه للصفحات
وإذا قام المبرمج بإستخدام الترميزutf-8 قلباً وقالباً فسوف تظهر الصفحه لدى باللغة العربية إذا كانت العربية مثبته لدى وبرنامج المتصفح مضبوط بشكل صحيح
وسوف تظهر الصفحه لدى الشخص الغربى باللغة العربية حتى لو لم يكن قد قام بتثبيت العربية فى نظام تشغيله
إذن فإنه كما تلاحظون المسأله ليست بسيطه ولا تحل بضغطة زر
لابد من توافر عدة عوامل لتظهر لديك الصفحات بالشكل المُفترض أن تظهر به
كما أننى لم أتطرق الى مسألة كون الصفحه تحتوى عدة أنواع من المحتويات و إحتمالية إستدعاء بيانات داخل الصفحه من قاعدة بيانات فحينها يتوجب على المبرمج أن يضبط قاعدة البيانات على الترميز الصحيح
كما أن محتوى البيانات المستدعاه من قاعدة البيانات داخل الصفحه يؤثر على إن كانت سوف تطغى بترميزها الغير صحيح على ترميز الصفحه الصحيح أم لا
أسف على الإطاله ولكن الموضوع طويل بالفعل وأنا أحاول إختصاره فى أقل الجمل والكلمات حتى لا يمل القارىء الذى مل بالفعل من العنوان
*index يتم تسمية الملف الذى يُراد ظهوره كملف أساسى فى أحد المجلدات بهذا الإسم
يعنى لو لدى مجلد على موقعى إسمه /almoltaqa وبداخل هذا المجلد خمسين الف صفحه بإمتداد html أى هذه الملفات سوف يظهر عندما يكتب زائر موقعى فى شريط العنوان العنوان التالى
site.com/almoltaqa
بدون أن يحدد الصفحه المطلوبه من داخل هذا المجلد؟
سوف يبحث السيرفر عن ملف بإسم index.html فإذا لم يجده سوف يبحث عن home.html فإذا لم يجده سوف يبحث عن default.html فإذا لم يجده سوف يبدأ بالبحث عن نفس الاسماء بالترتيب ولكن بإمتدادات أخرى مثل .php و .asp علما أن ترتيب الإمتدادات أصلاً يمكن تغييره من قبل مدير السيرفر ما ذكرته هو الشائع فقط لاغير
*Frontpage
هو البرنامج الشهير Microsoft Office Front Page
الذى يأتى مع حزمة المجموعة المكتبيه الشهيره
وهو برنامج متخصص فى تصميم أو برمجة الصفحات التى ننوى نشرها على الإنترنت
*نظام التشغيل= Operating System = إختصاراً OS
هو برنامج أساسى يجب تثبيته على أى حاسوب جديد ويحتوى على عدة تطبيقات تساعدك فى إستخدام قطع الhardware بشكل مناسب
والشائع منه هو windows ومن ويندوز يوجد عدة أجيال وكل جيل به عدة إصدارات
الجيل 9x يحتوى على windows 95 و 98 و me
الجيل NT يحتوى على windowsNT و windows2003server
و windowsxp
هناك عدة نظم تشغيل شائعه بخلاف ويندوز أشهرها وأكثرها قرباً من منافسة ويندوز هو نظام تشغيل LINUX وهو نظام مستمد من نظام UNIX ولكن كان هدفه ان يكون نظام تشغيل مجانى ويوجد منه هو أيضا(ال LINUX)
عدة توزيعات (ويطلق لقب توزيعات بدلا من أجيال التى أطلقناها على أجيال ويندوز : أى أنها مجرد تسميات لا تهتم لها كثيراً)
ومن ضمن توزيعات لينوكس توزيعة RED HAT وهى من أشهر التوزيعات ورمزها قبعه حمراء
وتوزيعة FEDORA وتوزيعة centOS وتوزيعة سوزى
وكل توزيعه تحتوى عدة إصدارات يتم تمييزها بأرقام فى أغلب الأحيان مثل centOS 4.5 و centOS 5 .......إلخ
* برنامج المتصفح browser
الشائع منها هو برنامج IE إختصاراً لـ Microsoft Internet Explorer
أخر إصدار صدر من هذا المتصفح هو الاصدار الثامن وأنا لا أفضله ولا أستخدمه منذ تعرفت على الإنترنت بسبب كون الجانب الأمنى به متدنى فى أغلب الإصدارات كما أن الثغرات وطرق سرقة المعلومات يتم تصميمها وإبتكارها لتعمل عليه وتخترقه , فلماذا أستخدم برنامج يواجه كل هذا التحدى
وأفضل إستخدام firefox أو opera
فائق إحترامى وتقديرى
اليوم سوف نتحدث عن الترميز : Encoding لصفحات الإنترنت
(الكلمات التى بجوارها علامة النجمه*سوف أحاول شرحها فى نهاية المقال)
فى بعض الأحيان عندما تحاول تصفح بريدك الإلكترونى الموجود على Yahoo أو Hotmail تفاجأ بأن الرساله تظهر برموز غريبه برغم أن المُرسل شخص تعرفه أو بالرغم من كونها رساله يُتوقع أن تكون بلغة عربية
ما سبب ذلك؟
للإجابه على هذا التساؤل الذى يطرح نفسه ويجمع نفسه وأحياناً يضرب نفسه علينا معرفة بعض المعلومات
عندما يقوم شخص بتصميم(ولو أن الكلمه الأدق برمجة) صفحة تعمل على الإنترنت سواء كانت هذه الصفحه بإمتداد html (مثال index.html*) أو بإمتداد php (مثال index.php) أو بإمتداد asp (مثال index.asp)
فإذن هذا الشخص يكتب كود بأعلى الصفحه التى يبرمجها
داخل هذا الكود يحدد إسم الترميز الذى يجب أن تُعرض به هذه الصفحه أمام الزوار
الترميز الشائع فى كل أنحاء العالم للملفات التى تحتوى نصوص إنجليزيه هوiso-8859-1
ولقبه: Us/Western European
* لاحظ أن كل ترميز له إسم فعلى ولقب وسوف نركز على الإسم الفعلى فى حديثنا وليس على اللقب
الترميز السالف ذكره يستخدمه المبرمجين ومطورى المواقع الغربيين بشكل عام , حتى برامج تصميم صفحات الـ html مثل *Frontpage تستخدم هذا الترميز كترميز إفتراضى لأى صفحه بإمتداد html تقوم بإنشائها
الترميز الصحيح لعرض صفحة تحتوى نصوص باللغة العربية هوأحد الترميزين التاليين:
Windows-1256 أو UTF-8
الشائع هو الأول والأصح هو الثانى
الشائع هو windows-1256 لأن أغلب من قاموا بشرح ونشر علوم برمجة المواقع فى العالم العربى تصوروا ان هذا هو الترميز الصحيح بسبب كون برنامج frontpage يقوم بتحويل ترميز أى صفحه مكتوبه باللغة العربية إلى هذا الترميز مباشرة فتوقعوا انه الترميز الأصح
والأصح هو UTF-8 لأنه يجعل الصفحات المكتوبه باللغة العربية تظهر لديك أنت كشخص يثبت اللغة العربية فى *نظام تشغيله بشكل صحيح
وتظهر لدى أى متصفح غربى لا يثبت اللغة العربيه فى نظام تشغيله بشكل صحيح أيضا
بعكس ال windows-1256 فهو يعرض الصفحه العربية بشكل صحيح لدى المتصفح العربى ولا يعرضها بشكل صحيح لمن لم يقم بتثبيت العربية فى نظام تشغيل حاسوبه
________________________
هكذا إنتهت المرحله الأولى من إجمالى مرحلتين على مبرمج الصفحه أن يخوضهما حتى تخرج صفحته للعالم بترميز صحيح يناسب المحتوى العربى
المرحله الثانيه هى أن يكون ترميز الصفحه = الترميز المكتوب فى رأس الصفحه
أعرف أن الجمله السابقه غير مفهومه
لنضرب مثال:
إذا كان لديك تيل قماش طويل ومكتوب على أول متر فيه حرير طبيعى بأبعاد كذا فى كذا
هذا هو الترميز الذى قام بكتابته المبرمج فى رأس الصفحه
ولكن القماش فعلياً كان من النوع : بوليستر
هذا هو الترميز الحقيقى للصفحه (يمكننا مجازاً أن نقول أنه ترميز خامة الصفحه أو ملف الصفحه)
ولكى يقوم المبرمج بجعل ترميز ملف الصفحه = للترميز المكتوب عليه أن يستخدم من الأصل برنامج يكتب صفحات بالترميز الصحيح المطلوب
يعنى مثلا برنامج frontpage برنامج ذكى جدا فى هذه المسأله يقوم تلقائياً بتحويل ترميز ملف الصفحه الى الترميز الذى تكتبه أنت فى رأس الصفحه
ولكن برنامج notepad لا يحول شىء , فإذا كنت تبرمج صفحاتك بواسطته فسوف يتوجب عليك أن تفتح الصفحات فى برنامج أخر يقوم يتحويل ترميزها الى الترميز المطلوب , ومثال على هذه البرامج هو notepad ++ وهو برنامج مفتوح المصدر ومجانى
______________________
بعد أن قام المبرمج بإنهاء الخطوتين وإطمأن لكون الصفحه ترميزها صحيح سواء فى الجانب المُعلن أو فى الحقيقه سوف يقوم برفع هذه الصفحه الى موقعه لتكون جاهزه للتصفح من قبل زوار موقعه
الذين هم أنا وأنت وأخرين
فإذا كان المبرمج قام بضبط الترميز ليكون windows-1256, وكان الضبط للجانب المعلن والجانب الفعلى (الترميز المكتوب وترميز خامة الملف)
وكنت انا متصفح الصفحه مثبت لدى اللغة العربية بشكل صحيح على نظام التشغيل وكان برنامج المتصفح الذى أستخدمه لتصفح الصفحه مضبوط على أن يقرأ الترميز العربى بشكل صحيح
فسوف تظهر لدى الصفحه باللغة العربية
ولكن سوف تظهر لدى أى شخص غربى لم يقم بتثبيت اللغة العربية فى نظام تشغيله بهذا الشكل:
ÇáÏÚã ÇáÝäí æØáÈÇÊ
أما إذا توافرت كل الشروط السابقه وكان المبرمج نسى تحويل ترميز خامة الصفحه الى windows-1256 فسوف لن تظهر لدى(ولا لدى الشخص الغربى بالطبع) الصفحه باللغة العربية بل ستظهر محتوية علامات مثل
ÇáÏÚã ÇáÝäí æØáÈÇÊ
إذا رأيت تلك العلامات فإعلم أن أحد الشروط السابقه قد إختل وعليك بإصلاح الجانب الذى من ناحيتك , وهو تثبيت العربية بنظام تشغيلك و ضبط المتصفح على أن يعتبر العربية هى اللغة الإفتراضيه للصفحات
وإذا قام المبرمج بإستخدام الترميزutf-8 قلباً وقالباً فسوف تظهر الصفحه لدى باللغة العربية إذا كانت العربية مثبته لدى وبرنامج المتصفح مضبوط بشكل صحيح
وسوف تظهر الصفحه لدى الشخص الغربى باللغة العربية حتى لو لم يكن قد قام بتثبيت العربية فى نظام تشغيله
إذن فإنه كما تلاحظون المسأله ليست بسيطه ولا تحل بضغطة زر
لابد من توافر عدة عوامل لتظهر لديك الصفحات بالشكل المُفترض أن تظهر به
كما أننى لم أتطرق الى مسألة كون الصفحه تحتوى عدة أنواع من المحتويات و إحتمالية إستدعاء بيانات داخل الصفحه من قاعدة بيانات فحينها يتوجب على المبرمج أن يضبط قاعدة البيانات على الترميز الصحيح
كما أن محتوى البيانات المستدعاه من قاعدة البيانات داخل الصفحه يؤثر على إن كانت سوف تطغى بترميزها الغير صحيح على ترميز الصفحه الصحيح أم لا
أسف على الإطاله ولكن الموضوع طويل بالفعل وأنا أحاول إختصاره فى أقل الجمل والكلمات حتى لا يمل القارىء الذى مل بالفعل من العنوان
*index يتم تسمية الملف الذى يُراد ظهوره كملف أساسى فى أحد المجلدات بهذا الإسم
يعنى لو لدى مجلد على موقعى إسمه /almoltaqa وبداخل هذا المجلد خمسين الف صفحه بإمتداد html أى هذه الملفات سوف يظهر عندما يكتب زائر موقعى فى شريط العنوان العنوان التالى
site.com/almoltaqa
بدون أن يحدد الصفحه المطلوبه من داخل هذا المجلد؟
سوف يبحث السيرفر عن ملف بإسم index.html فإذا لم يجده سوف يبحث عن home.html فإذا لم يجده سوف يبحث عن default.html فإذا لم يجده سوف يبدأ بالبحث عن نفس الاسماء بالترتيب ولكن بإمتدادات أخرى مثل .php و .asp علما أن ترتيب الإمتدادات أصلاً يمكن تغييره من قبل مدير السيرفر ما ذكرته هو الشائع فقط لاغير
*Frontpage
هو البرنامج الشهير Microsoft Office Front Page
الذى يأتى مع حزمة المجموعة المكتبيه الشهيره
وهو برنامج متخصص فى تصميم أو برمجة الصفحات التى ننوى نشرها على الإنترنت
*نظام التشغيل= Operating System = إختصاراً OS
هو برنامج أساسى يجب تثبيته على أى حاسوب جديد ويحتوى على عدة تطبيقات تساعدك فى إستخدام قطع الhardware بشكل مناسب
والشائع منه هو windows ومن ويندوز يوجد عدة أجيال وكل جيل به عدة إصدارات
الجيل 9x يحتوى على windows 95 و 98 و me
الجيل NT يحتوى على windowsNT و windows2003server
و windowsxp
هناك عدة نظم تشغيل شائعه بخلاف ويندوز أشهرها وأكثرها قرباً من منافسة ويندوز هو نظام تشغيل LINUX وهو نظام مستمد من نظام UNIX ولكن كان هدفه ان يكون نظام تشغيل مجانى ويوجد منه هو أيضا(ال LINUX)
عدة توزيعات (ويطلق لقب توزيعات بدلا من أجيال التى أطلقناها على أجيال ويندوز : أى أنها مجرد تسميات لا تهتم لها كثيراً)
ومن ضمن توزيعات لينوكس توزيعة RED HAT وهى من أشهر التوزيعات ورمزها قبعه حمراء
وتوزيعة FEDORA وتوزيعة centOS وتوزيعة سوزى
وكل توزيعه تحتوى عدة إصدارات يتم تمييزها بأرقام فى أغلب الأحيان مثل centOS 4.5 و centOS 5 .......إلخ
* برنامج المتصفح browser
الشائع منها هو برنامج IE إختصاراً لـ Microsoft Internet Explorer
أخر إصدار صدر من هذا المتصفح هو الاصدار الثامن وأنا لا أفضله ولا أستخدمه منذ تعرفت على الإنترنت بسبب كون الجانب الأمنى به متدنى فى أغلب الإصدارات كما أن الثغرات وطرق سرقة المعلومات يتم تصميمها وإبتكارها لتعمل عليه وتخترقه , فلماذا أستخدم برنامج يواجه كل هذا التحدى
وأفضل إستخدام firefox أو opera
فائق إحترامى وتقديرى
تعليق