المشكلة التي لم يتم حلها مطلقًا أثناء التطوير هي أن الصفحة تستخدم ترميز UTF8، ويستخدم الرأس والذيل طريقة ملفات تضمين القالب، ونتيجة لذلك، يوجد سطر فارغ إضافي يبلغ حوالي 10 بكسل في الرأس والذيل بدون أي السبب، وليس هناك شيء.
والسبب هو أنها كلها مشفرة في utf8. عند تضمين الملفات، يحتوي الدفق الثنائي النهائي على علامات UTF8 BOM متعددة. خطوط فارغة، ولكن فايرفوكس ليس لديه هذه المشكلة.
لذلك، إذا كان القالب يستخدم طريقة التضمين ليحتوي على ملفات utf8 متعددة ويحتاج إلى حفظه باستخدام Ultraedit، فما عليك سوى تحديد utf8 بدون تنسيق BOM عند الحفظ كوظيفة.
بالإضافة إلى ذلك، إذا وضعت الصفحة الصينية علامة العنوان أمام <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ /> في علامة رأس html، فستكون الصفحة كذلك فارغ.
لذلك يجب أن تستخدم صفحات utf8 الترتيب القياسي
<meta http-equiv=”content-type” content=”text/html;
<meta http-equiv=”content-language” content=”zh-CN” />
<meta name=”robots” content=”index,follow” />
<اسم التعريف =”الكلمات الرئيسية” المحتوى =”” />
<اسم التعريف =”الوصف” المحتوى =”” />
<اسم التعريف=”تصنيف” المحتوى=”عام” />
<اسم التعريف = "المؤلف" المحتوى = "" />
<اسم التعريف = "حقوق الطبع والنشر" المحتوى = "" />
<اسم التعريف = "المولد" المحتوى = "" />
<title></title>
رأس قائمة مكونات الصنف: xEFxBBxBF لا يزال PHP4 و5 يتجاهلان قائمة مكونات الصنف، لذلك يتم إخراجهما مباشرة قبل التحليل.
يوجد وصف خاص لهذه المشكلة في الأسئلة الشائعة لمعيار w3.org:
http://www.w3.org/International/questions/qa-utf8-bom
التفاصيل كما يلي:
في ترميز UCS، يوجد رمز يسمى الحرف "ZERO WIDTH NO" -break SPACE"، وترميزه هو FEFF. FFFE هو حرف غير موجود في UCS، لذلك لا ينبغي أن يظهر في الإرسال الفعلي. توصي مواصفات UCS بأن نرسل الأحرف "ZERO WIDTH NO-break SPACE" قبل إرسال دفق البايت. بهذه الطريقة، إذا استقبل المتلقي FEFF، فهذا يشير إلى أن دفق البايت هو Big-Endian؛ وإذا استقبل FFFE، فهذا يشير إلى أن دفق البايت هو Little-Endian. ولذلك، فإن الحرف "ZERO WIDTH NO-break SPACE" يُسمى أيضًا BOM.
لا يتطلب UTF-8 وجود قائمة مكونات الصنف (BOM) للإشارة إلى ترتيب البايت، ولكن يمكنه استخدام قائمة مكونات الصنف (BOM) للإشارة إلى طريقة التشفير. ترميز UTF-8 للحرف "ZERO WIDTH NO-break SPACE" هو EF BB BF. لذا، إذا استقبل جهاز الاستقبال تدفق بايت يبدأ بـ EF BB BF، فإنه يعلم أنه مشفر بـ UTF-8.
Windows هو نظام تشغيل يستخدم BOM لتحديد طريقة ترميز الملفات النصية: WindowsXP Professional، مجموعة الأحرف الافتراضية: الصينية
1) المفكرة: يمكنها التعرف تلقائيًا على ملفات تنسيق ترميز UTF-8 بدون BOM، ولكن لا يمكنها التحكم عند حفظ الملفات إضافة BOM إذا تم حفظ الملف، فستتم إضافة BOM بشكل موحد.
2)editplus: لا يمكن التعرف تلقائيًا على الملفات بتنسيق UTF-8 بدون BOM. عند حفظ الملف، حدد تنسيق UTF-8 ولن يكتب رأس BOM في رأس الملف.
3) UltraEdit: أقوى وظيفة لترميز الأحرف تحديد ملفات UTF-8 تلقائيًا باستخدام BOM وبدون BOM (يمكن تهيئتها عند الحفظ، ويمكنك اختيار ما إذا كنت تريد إضافة BOM من خلال التكوين
(ملاحظة خاصة هي أنه عند حفظ ملف تم إنشاؤه حديثًا، تحتاج إلى اختيار الحفظ بتنسيق UTF -8 بدون تنسيق bom)
وجدت لاحقًا أن برنامج Notepad ++ يتمتع أيضًا بدعم أفضل لـ utf-8 bom، وأوصي الجميع باستخدامه.