หากโปรแกรม ASP อยู่ในไซต์เดียวกันและมีโปรแกรมที่เข้ารหัส UTF-8 และโปรแกรมที่เข้ารหัส GB2312 หลังจากเรียกดูหน้าที่เข้ารหัส UTF-8 แล้วเรียกดูหน้า GB2312 ของเว็บไซต์ปัจจุบัน หน้าที่เข้ารหัส GB2312 จะปรากฏขึ้น ตัวอักษรที่อ่านไม่ออก
ปัญหาคือเมื่อคุณเรียกดูการเข้ารหัส UTF-8 เซิร์ฟเวอร์จะใช้กลไก UTF-8 เพื่อส่งออก HTML ตามค่าเริ่มต้น เมื่อคุณเรียกดูเพจ GB2312 เซิร์ฟเวอร์จะยังคงใช้ UTF-8 เพื่อส่งออกการเข้ารหัส GB2312 .
ปัญหานี้กวนใจฉันตลอดเช้า และในที่สุดอุดมคติสีน้ำเงินก็ได้รับการแก้ไข
ขั้นแรก มาดูคุณสมบัติสี่ประการที่ได้รับจากอ็อบเจ็กต์เซสชัน
1.CodePage อ่าน/เขียน ประเภทจำนวนเต็ม
กำหนดโค้ดเพจที่ใช้แสดงเนื้อหาของเพจในเบราว์เซอร์ โค้ดเพจคือค่าตัวเลขของชุดอักขระ และภาษาและตำแหน่งที่แตกต่างกันอาจใช้โค้ดเพจที่แตกต่างกัน ตัวอย่างเช่น รหัส ANSI หน้า 1252 ใช้สำหรับภาษาอังกฤษแบบสหรัฐอเมริกาและภาษายุโรปส่วนใหญ่ รหัสหน้า 932 ใช้สำหรับอักขระภาษาญี่ปุ่น (นี่คือแอตทริบิวต์ที่เราจะใช้ที่นี่)
2.LCID อ่าน/เขียน ประเภทจำนวนเต็ม
กำหนดตัวระบุสถานที่เพจ (LCID) ที่ส่งไปยังเบราว์เซอร์ LCID เป็นตัวย่อมาตรฐานสากลที่ระบุภูมิภาคโดยไม่ซ้ำกัน ตัวอย่างเช่น 2057 กำหนดสัญลักษณ์สกุลเงินของภูมิภาคปัจจุบันเป็น '£' LCID ยังสามารถใช้ในคำสั่ง เช่น FormatCurrency ได้ ตราบใดที่มีพารามิเตอร์ LCID เผื่อเลือก LCID ยังสามารถตั้งค่าในคำสั่งการประมวลผล ASP <%...%> และมีความสำคัญเหนือการตั้งค่าในแอตทริบิวต์ LCID ของเซสชัน รายการคำแนะนำในการประมวลผล ASP มีให้ภายหลังในบทนี้
3.SessionID เป็นแบบอ่านอย่างเดียว แบบยาว.
ส่งคืนตัวระบุเซสชันสำหรับเซสชันนี้ ซึ่งสร้างโดยเซิร์ฟเวอร์เมื่อสร้างเซสชัน ไม่ซ้ำกันเฉพาะในช่วงอายุการใช้งานของออบเจ็กต์แอปพลิเคชันหลัก ดังนั้นจึงสามารถนำมาใช้ซ้ำได้เมื่อแอปพลิเคชันใหม่เริ่มทำงาน
4.หมดเวลาอ่าน/เขียน ประเภทจำนวนเต็ม
กำหนดระยะเวลาหมดเวลาเป็นนาทีสำหรับเซสชันนี้ หากผู้ใช้ไม่รีเฟรชหรือขอหน้าเว็บภายในระยะเวลาหมดเวลา เซสชันจะสิ้นสุดลง สามารถแก้ไขได้ในแต่ละหน้าเว็บตามต้องการ ค่าเริ่มต้นคือ 10 นาที เวลานี้ควรสั้นลงสำหรับไซต์ที่มีการใช้งานสูง!
ต่อไปนี้เป็นโค้ดเพจ ANSI ที่ใช้กันทั่วไปบางส่วน:
<%@ โค้ดเพจ=65001%>UTF-8
<%@ codepage=936%>จีนตัวย่อ
<%@ codepage=950%>ภาษาจีนตัวเต็ม
<%@ codepage=437 %>สหรัฐอเมริกา/แคนาดา อังกฤษ
<%@ codepage=932 %>ภาษาญี่ปุ่น
<%@ codepage=949 %>เกาหลี
<%@ โค้ดเพจ=866 %>รัสเซีย
ตอนนี้เรามาพูดถึงวิธีการและการใช้ในการแก้ไขปัญหากัน
เพิ่มรหัสต่อไปนี้ลงในไฟล์ที่ใช้ร่วมกัน conn.asp ที่ใช้ในโปรแกรมเว็บไซต์:
1. เพิ่มไปยังหน้าการเข้ารหัส Gb2312
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%เซสชัน.CodePage=936%>
สุดท้ายก็เพิ่มอีก
<%Response.charset = "BG2312"%>
2. เพิ่ม <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> ไปยังหน้าการเข้ารหัส utf-8
<%เซสชัน.CodePage=65001%>
<%Response.charset = "utf-8"%>
นี่เป็นวิธีที่ง่ายและมีประสิทธิภาพมากที่สุด