การสร้างเว็บเพจแบบ 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
- WYSIWYG
- Ternary operator
มี 1 ความเห็น ในบทความเรื่อง “BOM (Byte Order Mark) หน้าตามันเป็นอย่างไร”
แสดงความเห็น
Categories
-
Recent Posts
- เครื่องฟ้อง error จอฟ้า STOP: c0000221 {Bad Image Checksum}
- The application failed to initialize properly(000000)
- อยากเปิดร้านคอม ทำยังไงดี?
- Wordpress Theme PhotoMadness ธีมสำหรับคนชอบถ่ายภาพ
- mail server : ติดตั้ง argosoft mail server
- mail server สร้างเมล์เซิฟเวอร์ทดสอบโค้ดส่งอีเมล์ ด้วย hmailserver
- php redirect สั่งเด้งฟ้าผ่า
- javascript ห้ามคลิกขวา
- CSS IE Bugs แมลงร้ายในไออี 6
- PHP round ปัดเศษ
- PHP ceil() ปัดเศษขึ้น
- Gravatar สร้างร่างใหม่สู่โลกออนไลน์
- PHP floor() ปัดเศษลง
- แจกโค้ด php คำนวณอายุ
- PHP date() ฟังก์ชั่นจัดการวัน-เวลา
Tags
Array Back to the basic calendar CAPTCHA chart CSS Dreamveawer error firefox firefox plugin FPDF General gmail google hotmail html icon icons javascript jQuery jquery plugin jquery slide jquery tooltip jQuery tutorial jQuery UI loop Mac MySQL Other PHP plugin program 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
ขอบคุณครับ