คำถาม:
รหัสบล็อกของฉันคือ UTF-8 บางครั้งเมื่อเปิดหน้ามันจะว่างเปล่าและการรีเฟรชมันจะเป็นเรื่องปกติ แต่เมื่อดูไฟล์ต้นฉบับเสร็จสมบูรณ์ ทั้งภายใต้ IE6 และ Firefox เป็นเรื่องปกติ แต่สิ่งนี้เกิดขึ้นเป็นครั้งคราวภายใต้ IE7
ตอนแรกฉันสงสัยว่ามันเป็นปัญหาของ IDC แต่หลังจากนั้นฉันคิดถึง JS, CSS, โครงสร้างหน้า ฯลฯ โดยบังเอิญฉันคิดถึงการเขียนโค้ด ท้ายที่สุดปัญหาการเข้ารหัสไม่ได้มีปัญหากับฉันครั้งหนึ่งหรือสองครั้ง
แก้ปัญหา:
<title> wulin.com </title>
<meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312 />
เปลี่ยนคำสั่งซื้อ
<meta http-equiv = เนื้อหาประเภทเนื้อหา = text/html; charset = gb2312 />
<title> lc'blog </title>
เหตุผล:
ทำไมปัญหานี้เกิดขึ้นกับ IE7 เท่านั้น? นี่เป็นเพราะเมื่อ IE7 Parses การเข้ารหัสเว็บแท็กใน HTML เป็นที่ต้องการและจากนั้นข้อความในส่วนหัว HTTP จะถูกส่งในขณะที่เบราว์เซอร์ในซีรีย์ Mozilla นั้นตรงกันข้าม
เนื่องจากหน้าเข้ารหัส UTF-8 แสดงถึงอักขระจีนที่มี 3 ไบต์ GB2313 หรือ BIG5 ธรรมดาเป็นสองตัว เมื่อเอาท์พุทหน้าเนื่องจากเหตุผลข้างต้นเมื่อเบราว์เซอร์แยกวิเคราะห์และส่งออกเนื้อหาของ <title> </title> หากมีอักขระความกว้างเต็มรูปแบบคี่ต่อหน้า </title> ie7 ถือว่า UTF-8 เป็นสองไบต์และครึ่งตัวอักษรจีนปรากฏขึ้น ในเวลานี้อักขระจีนครึ่งหนึ่งจะถูกรวมเข้ากับ <ของ </title> ลงในตัวละครที่อ่านไม่ออกทำให้ IE7 ไม่สามารถอ่านส่วน <title> ได้ทำให้ทั้งหน้าว่างเปล่าและเอาท์พุท หากคุณดูไฟล์ต้นฉบับในเวลานี้คุณจะพบว่าพื้นผิวใบทั้งหมดได้รับการส่งออกจริง
ดังนั้นวิธีแก้ปัญหาที่ง่ายที่สุดคือการวางคำจำกัดความของอักขระไว้ในแท็ก <head> </head> ของไฟล์เว็บเพจก่อน <meta http-equiv = content-type content = text/html; charset = utf-8 /> ใน <title> </title>
ในความเป็นจริงเวอร์ชันการเข้ารหัสอื่น ๆ ก็มีปัญหาที่คล้ายกัน แต่การเข้ารหัสเริ่มต้นเบราว์เซอร์ของเราคือ GBK ดังนั้นจึงมีโอกาสน้อยที่จะสังเกตเห็นได้