شوّيت: شبكة كرة قدم اجتماعية


العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > الويب والويب 2.0 والـ Semantic Web
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط جدا
#1  
Exclamation Byte Order Mark - BOM

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

بموضوع سابق في قسم تطوير الويب قمت بفتح باب النقاش حول الترميز utf-8 : ايجابياته وسلبياته واعتقد ان الموضوع كان مفيد ولله الحمد وفي النهاية وعدت الاخوة بمقال خاص حول Byte Order Mark - BOM حيث ان اول نشر لهذا المقال كان في موقع المشروع وها هو اليوم بين ايديكم ...

--------------------
تعريف :

Byte order mark هي مجموعة رموز في بداية الملف النصي ووظيفتها اعلام المستخدم بان هذا الملف تابع لمجموعة محارف يونيكود Unicode فاما ان يكون بترميز UTF-8 او UTF-16 او UTF-32 .
هذه المجموعة من الرموز لا تكون ظاهرة بالملف واذا كنا نريد ان نعرف ترميز ملف معين فنستطيع ان تفتح الملف باي محرر HEX وننظر الى بداية ترتيب بيانات قيم HEX في المحرر والرسم التوضيحي التالي يبين ترميز الملف حسب مجموعة الرموز الاولى :



وطبعا إذا لم يكن يحوي تيار البيانات أي من هذه القيم فإن هذا الملف لا يُصنف على أنه من مجموعة الملفات المرمزة بواسطة Unicode .

العلاقة بين BOM و الترميز UTF-8 :

هناك علاقة وطيدة بين الـ Byte order mark والترميز العالمي المشهور UTF-8 فعند استخدامنا لأي محرر تقريبا واردنا حفظ الملف بترميز UTF-8 فان المحرر تلقائيا باضافة هذه الرموز الى بداية الملف والهدف كما اسلفنا ان يتم اعطاء هوية لهذا الملف على انه من مجموعة محارف Unicode والا فانك عندما تفتح الملف من جديد بدون هذه الرموز فان المحرر لن يتعرف على الترميز المناسب لهذا الملف وبالتالي فانه سيعتبر ترميز الملف ANSI او الترميز التلقائي للملفات عند فتحها بواسطة هذا المحرر .

أهمية حذف الـ BOM من الملفات التي بترميز UTF-8 :

انه ومن المهم جدا للمبرمجين ان يقوموا بحذف هذه الرموز من بداية الملف والسبب ان بعض لغات البرمجة مثل لغة php لا تقبل من اي اشارة ان تتقدم على بعض دوالها المهمة مثل دالة الجلسات Session او الدالة Header والابقاء على رموز الـ BOM يعني تعطل الملف واعطاء خطأ برمجي لا يعرف المبرمج سببه في كثير من الاحيان لجهله برموز الـ Byte Order Mark فيأخذ بالبحث في المواقع والمنتديات عن سبب الخطأ ويحاول ان يعرض الكود الذي في داخل الملف على من هم اكثر خبرة منه علهم يعرفون السبب وفي الحقيقة ان الكود خالي من الشوائب والعيوب البرمجية تماما لكن سبب الخطأ البرمجي هو الرموز الاضافية في بداية الملف .

يمكن أن يقول البعض أنه ما من حاجة لاستخدام الترميز UTF-8 في ملفاتنا لأننا نستخدم الترميز ANSI ولا توجد مشكلة، والجواب طبعاً أن هذا الترميز هو الترميز العالمي والأكثر شهرة والأكثر فاعلية لأنه يعمل مع جميع لغات العالم ويعمل في جميع أنظمة التشغيل ولأنه متوافق أيضا مع المعايير القياسية للمواقع W3 .

مشاكل وعقبات عند استعمال الترميز UTF-8 وعلاقتها بالرموز الاضافية BOM وحلولها :

1- انا مبرمج اريد الانتقال من البرمجة بترميز ANSI الى الترميز UTF-8 ولكن المتصفح يظهر خطأ برمجي دائما مع العلم بان الكود سليم وخالي من الشوائب البرمجية .



الجواب : من الواضح انك تستخدم دالة php طلائعية اي انها لا تقبل لاي رمز ان يسقبها في الملف والا تعطل عملها نهائيا وهنا فانك تستعمل الدالتين Session و Header … الحل ان تقوم بتحميل اي محرر يحتوي على خاصية تحرير رموز HEX مثل PSPad وتقوم بحذف القيم الاولى في الملف وهي EF BB EF او ان تقوم بتحميل محلل يحوي خاصية حفظ الملف بدون BOM اي انك عند حفظك للملف فانه سيجعلك تختار ترميز الملف وانت اكيد ستختار الترميز UTF-8 واسفل هذا الخيار هناك مربع اختيار بالنقر عليه سوف يتم حفظ الملف مع الرموز الاضافية BOM وعند سحب علامة الصح من داخله فان الملف سوف يحفظ بدون هذه الرموز وانا ارشح محرر EMeditor او البرنامج الرائع Dreamweaver لهذه المهمة … وبعدها قم بحفظ الملف وان شاء الله لن تعود هذه الأخطاء البرمجية للظهور مجددا .

2- بحمد الله تم التخلص من مشكلة الرموز الاضافية ببداية الملف BOM واشتغل الملف بنجاح لكني عندما اريد ان اعدل على الملف اقوم بفتحه بواسطة المفكرة Notepad لكن لا يظهر لي بان الملف بترميز UTF-8 وانما يظهر على انها صاحب الترميز ANSI او لا يظهر الترميز بالمرة ؟!! اعتقد باني سأعدل عن فكرة البرمجة بواسطة الترميز UTF-8 !!

الجواب : أخي، كل شي بالصبر وحب المعرفة يأتيك على رجليه … برنامج المفكرة Notepad ومع الأسف فانه يعتبر كل ملف لا يحوي الرموز الاضافية BOM يعتبره بترميز ANSI !!! وليس المفكرة فقط وانما برنامج المفكرة ++ (Notepad ++ ) ايضا به نفس المشكلة طيب ما الحل ؟؟ من الافضل اخوي ان تقوم باستعمال محررات محترمة وصديقة للترميز UTF-8 لكي تتخطى هذه المشكلة وانا ارشح هنا برنامج Dreamweaver مرة اخرى لهذه المهمة لان الامور لا تلتبس عليه عند فتح ملف UTF-8 بواسطته وحتى لو كان الملف بدون BOM فأنه سوف يعتبره ملف يونيكود UTF-8 وارشح ايضا برنامج EMeditor لهذه المهمة ايضا .

وفي النهاية اقول لأخواني بان اي شيء تراه مفيد وغير متواجد عربيا وغير مكرر بعالم تطوير المواقع فعليك ثم عليك ان تقوم بنشره ولا تحتكر العلم !!

في إمان الله إخواني في مقالات قادمة .

المراجع:






__________________
EbNCaNa اخوكم ابن قانا

[درس] قائمة بريدية بأسهل الطرق بواسطة PHP

[توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟
EbNCaNa is offline   قديم 03-01-2008, 11:27 PM
الرد مع إقتباس
عضو فعال جدا
#2  

جزاكم الله خيرا
موضوع في غاية الروعة
بس للعلم يعتبر الموضوع بالنسبة لعلمي الضئيل مقارنة بعلمك متقدم بعض الشئ
ولكني احتفظت به في مفضلتي
حتي اذا ما وصلت الي مرتبة جيدة مثلك ان شاء الله
اقوم بمراجعتها ودراستها
يعني حتاخد الثواب يعني حتاخده
ان شاء الله
وربنا يكرمك






__________________
تحاور مع العاقل بعقل .. اما ان يقتنع او تقتنع
وتحاور مع الجاهل بعقل .. اما يطقعش او تفرقش
وتلك الفاظ لا معنى لها كذلك كلماته
سحاب اون لاين is offline   قديم 04-01-2008, 04:38 AM
الرد مع إقتباس
عضو نشيط جدا
#3  

حياك الله اخوي سحاب على ردك المشجع وان شاء الله لن ابخل بأي شي قد تعلمته فانا وانت وجميعنا اخوة لنا نفس العقول ولكن الاختلاف في التجربة ...

الى الامام حبيبي .






__________________
EbNCaNa اخوكم ابن قانا

[درس] قائمة بريدية بأسهل الطرق بواسطة PHP

[توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟
EbNCaNa is offline   قديم 04-01-2008, 12:47 PM
الرد مع إقتباس
عضو نشيط
#4  

[ارك الله فيك اخوي EbNCaNa

بالفعل اخوي .. شرح جدا جدا مفيد

عني انا استفدت كثير منه في مشروعي البرمجي

بارك الله فيك

تحيتي لك






__________________
-----------------------------------------------------------
:: همـ المشاعر ــس :: عبد الله :: للتصميم و التطوير ::
http://www.mr-sa.com
-----------------------------------------------------------
عبد الله الزايدي is offline   قديم 10-07-2008, 04:24 AM
الرد مع إقتباس
عضو نشيط
#5  

بارك الله فيك
استفدت جداً من هذه المعلومات






malj is offline   قديم 10-07-2008, 12:44 PM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
مشكلة عند حذف الـ BOM من ملف بترميز utf-8 EbNCaNa البرمجية القياسية Ajax +XML+ CSS+ JavaScript وغيرها 4 13-12-2007 11:13 PM
بفلوسي وبعد شركة vbulletin مارضوا يعطوني تصريح التاجر الإصلاح والصيانة 12 08-11-2004 07:47 PM
يا خسارة الاسلام فينا .. 169 دولار مسروقة استرجعها 2chekout alnassaj عروض البيع وطلبات الشراء في البرمجة والتصميم وبناء المحتوى وتبادل الاعلانات 10 29-08-2004 12:37 PM
من يقدر عليها ؟ سؤال حول ORDER BY يحتاج الى خبير hamudi الويب والويب 2.0 والـ Semantic Web 4 30-01-2004 06:06 PM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 06:46 AM.