BOM (Byte Order Mark) หน้าตามันเป็นอย่างไร
การสร้างเว็บเพจแบบ utf-8 จะมีอยู่ 2 ลักษณะ คือ utf-8 without BOM กับ utf-8 with BOM ซึ่ง utf-8 with BOM นี่แหละที่มักจะก่อปัญหา error ดังด้านล่าง error อันสุดแสนจะคลาสสิค ถ้าลองได้เขียน utf-8 ใหม่ๆ แล้วเป็นอันว่าได้เจอกันแทบทุกคน
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent
ลองอ่านบทความที่ท่านอื่นได้รับผลกระทบจาก BOM กัน
1. http://www.wittaya.net/2009/02/byte-order-mark-bom.html
2.PHP ไม่ support BOM (utf-8 with BOM)
แล้วทีนี้มาถึงคำถามที่ว่า แล้วไอ้ BOM มันคืออะไร ผมลองหาในกูเกิลดู มันมีแต่ภาษาอังกฤษที่เขา อธิบายไว้ค่อนข้างเป็นหลักการและชัดเจน
1.http://en.wikipedia.org/wiki/Byte-order_mark
ต่อมาก็ถึงคำถามที่ว่า หน้าตามันเป็นยังไง ผมได้สร้างไฟล์ php ขึ้นมาตัวหนึ่ง แล้วก็เซฟเป็น utf-8 without BOM กับ utf-8 with BOM แล้วก็ดาวน์โหลดโปรแกรม Hex Editor Neo มาเพื่อเปิดดูไฟล์ในโหมด binary เพื่อให้เห็นหน้าตา BOM กันอย่างชัดๆ
นี่เป็นโค้ดที่ผมเขียน สังเกตดูนะครับ ตรงบรรทัดแรก จะไม่มีอะไรอยู่ก่อนเครื่องหมาย <?php เลย
ทีนี้มาดูกันต่อ
utf-8 without BOM
utf-8 with BOM โอ้ว… จะเห็นว่ามีตัวอะไรไม่รู้แทรกอยู่ก่อน <?php
ตัวนี้แหละครับที่มันจะเป็น output ก่อนใครๆ และเมื่อเจอกับคำสั่ง header(); ละก้อ error อันสุดแสนจะแคลสสิก ก็จะปรากฎทันที ทั้งที่ถ้าเราเปิดดูโค้ดด้วย edit+ หรือ dreamweaver เราจะไม่เห็นมันเลย
เพราะฉะนั้นสรุป
ถ้าใช้ดรีมเว็บเวอร์
ถ้าใช้ Edit+

บทความน่าสนใจ
- การเปลี่ยน default view source editor ใน IE
- syntax error คือ
- Error ที่ (น่าจะ) เจอบ่อย ของ PHP
- Ternary operator
- WYSIWYG
ผู้เขียน: วัชรเมธน์ ชิษณุคุปต์ ศรีเนธิโรทัย
เว็บไซต์ :http://www.select2web.com
งานเล็กๆก็ยิ่งใหญ่ได้ ถ้าอยู่ในที่ๆเหมาะสม
มี 1 ความเห็น ในบทความเรื่อง “BOM (Byte Order Mark) หน้าตามันเป็นอย่างไร”
แสดงความเห็น
Categories
- 1 week 1 Source (2)
- AppServ (10)
- Array (2)
- Codeigniter (1)
- Computer (7)
- CSS (9)
- Dreamweaver (7)
- Firefox (7)
- Form (2)
- FPDF (15)
- General (31)
- HTML (2)
- Javascript (6)
- jQuery (86)
- Mac (10)
- MySQL (15)
- Navicat (9)
- Other (58)
- PHP (97)
- PHP-function (12)
- Program (8)
- SMF (15)
- SQL (20)
- Theme (1)
- TinyMCE (7)
- webservice (1)
- Wordpress (18)
- คอมฯ ทั่วไป (6)
-
Recent Posts
- akismet ปลักอินกรองแสปมของเวิร์ดเพรส
- WP-CMS Post Control ปลักอินสำหรับซ่อนสิ่งที่ไม่ต้องการในเวิร์ดเพรส
- wordpress flickr manager ปลักอินสำหรับอัปโหลดภาพเก็บที่ flickr
- picpick โปรแกรมที่เว็บโปรแกรมเมอร์ต้องมีไว้ติดเครื่อง
- ขอความเห็น
- todoist โปรแกรมจดรายการสิ่งที่ต้องทำสุดเจ๋ง
- wordpress google xml sitemap หนึ่งในปลักอินที่ท่านต้องติดตั้ง
- แนะนำเว็บให้ความรู้การเขียนโปรแกรมโคตะระเด็ด
- โปรแกรมจดรายการสิ่งที่จะต้องทำ
- แจกภาพปุ่มเอาไปตกแต่งเว็บ
- วิธีสร้างเว็บให้ติดอันดับหนึ่ง
- wordpress ปิงผู้ปิดทองหลังพระ
- วิธีเปิด notepad อย่างรวดเร็ว
- วิธีดึงข้อมูลออกจากฐานข้อมูลของเวิร์ดเพรส แบบสุ่ม
- หารายละเอียดโดเมน
Tags
AppServ Array Back to the basic bug calendar CAPTCHA chart CSS Dreamveawer eclipse error firebug Firefox firefox plugin FPDF General google helios HTML icons Javascript jQuery jquery plugin jquery slide jQuery tutorial jQuery UI Mac MySQL Other pdt PHP phpmailer programming slide slide show SMF smf themes smf themes download smf themes free smf themes thai SQL sql function tooltip Wordpress wordpress plugin


เป็นปัญหาจริงๆด้วยครับ งง อยู่ตั้งนานว่ามันเกี่ยวไรกับ BOM หรือ ไม่BOM
ขอบคุณครับ