IE ไม่สามารถเลือกโซลูชันการเข้ารหัส UTF-8 ได้โดยอัตโนมัติ
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-20 16:51:40
เมื่อใช้ IE เป็นเบราว์เซอร์บนระบบปฏิบัติการ Windows ปัญหานี้มักเกิดขึ้น: เมื่อเรียกดูเว็บเพจโดยใช้การเข้ารหัส UTF-8 เบราว์เซอร์จะไม่สามารถตรวจจับได้โดยอัตโนมัติ (นั่นคือเมื่อไม่ได้ตั้งค่ารูปแบบการเข้ารหัส "การเลือกอัตโนมัติ") การเข้ารหัสที่ใช้โดยเพจ แม้ว่าหน้าเว็บจะได้ประกาศรูปแบบการเข้ารหัสแล้ว: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> แต่บางหน้าที่มีการเข้ารหัส UTF-8 ภาษาจีนจะว่างเปล่า เอาท์พุท
หากคุณใช้เบราว์เซอร์ Mozilla, Mozilla Firefox หรือ Sarafi สิ่งนี้จะไม่ทำให้เกิดปัญหานี้ เนื่องจากเมื่อ IE แยกวิเคราะห์การเข้ารหัสหน้าเว็บ จะจัดลำดับความสำคัญของแท็กเป็น HTML จากนั้นจึงจัดลำดับความสำคัญของข้อมูลในส่วนหัว HTTP ในขณะที่เบราว์เซอร์ซีรีส์ Mozilla ทำตรงกันข้าม
เนื่องจาก UTF-8 ใช้ 3 ไบต์เพื่อแสดงอักขระภาษาจีน ในขณะที่ GB2312 หรือ BIG5 ทั่วไปใช้ 2 ตัว เมื่อเพจถูกส่งออก ด้วยเหตุผลข้างต้น เมื่อเบราว์เซอร์แยกวิเคราะห์และส่งออกเนื้อหาของ <title></title> หากมีอักขระเต็มความกว้างเป็นจำนวนคี่ก่อนหน้า </title> IE จะถือว่า UTF- 8 เป็น 2 ไบต์ เมื่อแยกวิเคราะห์ อักขระจีนครึ่งหนึ่งจะปรากฏขึ้น ในขณะนี้ อักขระจีนครึ่งหนึ่งจะถูกรวมเข้ากับ < ของ </title> เพื่อสร้างคำที่อ่านไม่ออก ทำให้ IE ไม่สามารถอ่าน <title> บางส่วนและปล่อยให้ทั้งหน้าว่างเปล่า หากคุณดูที่ไฟล์ต้นฉบับในเวลานี้ คุณจะพบว่าพื้นผิวใบทั้งหมดได้ถูกส่งออกไปแล้วจริงๆ
ดังนั้น วิธีแก้ไขที่ง่ายที่สุดคือการกำหนดอักขระ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / ในแท็ก <head></head> ของไฟล์หน้าเว็บ . > ก่อน <title></title>