เมื่อเราใช้ฐานข้อมูลการเข้าถึงและ ASP เพื่อสร้างเว็บไซต์บางครั้งอาจมีปัญหาที่อ่านไม่ออกกับ UTF-8 แล้วเราควรทำอย่างไรหากปัญหาที่ไม่เบ็ดของ ASP UTF-8 เกิดขึ้น? ทีนี้ลองมาดูวิธีแก้ปัญหา ASP UTF-8 ที่อ่านไม่ออก
นี่เป็นปัญหาของการเข้ารหัสเว็บ โดยทั่วไปแล้วในภาษาจีนจะใช้ GB2312 ดังนั้นหากคุณแสดงให้เห็นว่าภาษาจีนนั้นไม่ได้อ่านออกมาไม่ได้ แต่บางครั้งเราใช้รูปแบบ UTF-8 ทั่วไปในระดับสากล หากผู้คนไม่ทราบเกี่ยวกับรูปแบบ UTF-8 มากนักพวกเขามีแนวโน้มที่จะเป็นรหัสที่อ่านไม่ออก
เพื่อนหลายคนถามฉันว่าทำไม codepage ที่ระบุใน ASP คือ 65001 และมักจะแสดงรหัสที่อ่านไม่ออก คนที่มีความสามารถจะอธิบายคำถามนี้โดยละเอียดที่นี่เพื่อหลีกเลี่ยงเพื่อนหลายคนที่ออกนอกเส้นทางและแม้แต่ปฏิเสธ UTF-8
หน้าเว็บ ASP UTF8 Garbled Code หากคุณไม่ทราบว่า UTF-8 คืออะไร Caizi แนะนำให้คุณค้นหาข้อมูลที่เกี่ยวข้องของ UTF-8 ก่อน
แน่นอนว่ามันสมเหตุสมผลที่การเข้ารหัส UTF-8 ได้รับการยอมรับและแม้กระทั่งชอบโดยผู้คนมากขึ้นเรื่อย ๆ วันนี้เมื่อ Web2.0 เป็นที่นิยมในขณะที่พูดถึงความเข้ากันได้หลายเบราว์เซอร์ฉันต้องคิดว่าปรากฏการณ์ที่อ่านไม่ออกที่เกิดจากการเข้ารหัสตัวละครที่แตกต่างกันก็ต้องได้รับการจัดการที่ดี ...
ไม่กี่ปีที่ผ่านมาทุกรุ่นด้านล่าง IE6 จะถูกอ่านไม่ออกหากพวกเขาไม่ได้ติดตั้งไลบรารีฟอนต์ที่สอดคล้องกัน ตัวอย่างเช่นฉันเป็นเวอร์ชันของ IE5 (ค่าเริ่มต้น Windows2000) หากไม่มีการติดตั้งไลบรารีแบบอักษรแบบดั้งเดิมเว็บไซต์ที่เข้าถึงหน้าแบบดั้งเดิมใด ๆ จะถูกอ่านไม่ออกหากไม่ได้ติดตั้ง แน่นอนว่าสถานที่ตั้งคือหน้าใช้ชุดถ่านของ Big5 และ UTF-8 สามารถจัดการกับปัญหานี้ได้เช่นเดียวกับการเข้ารหัสระหว่างประเทศ ตราบใดที่หน้าถูกบันทึกเป็นรูปแบบการเข้ารหัส UTF-8 จากนั้นกำหนด codepage และ charset เป็น UTF-8 บนหน้าคุณสามารถแสดงเนื้อหาที่ถูกต้องในเบราว์เซอร์ไคลเอนต์ใด ๆ และจะไม่อ่านไม่ออก ...
โอเค Caizi ใช้หน้า ASP เป็นตัวอย่างและลองใช้ตัวอย่างเพื่อดูการดำเนินการเฉพาะ:
ในกรณีนี้ Caizi แนะนำให้ใช้ EditPlus เพื่อเขียนโค้ด Caizi ยังเขียนบทช่วยสอนเกี่ยวกับการใช้ EditPlus เพื่อนที่สนใจสามารถคลิกที่นี่เพื่อตรวจสอบ
เปิดหน้า ASP ใหม่ฉันเชื่อว่าเพื่อนที่เล่น ASP จะสังเกตเห็นว่าในรหัสแหล่งที่ดาวน์โหลดจำนวนมากมักจะมีประโยคที่ด้านบนของหน้า:
<%@language = "vbscript" codePage = "936"%>
ไม่จำเป็นต้องพูดมากเกี่ยวกับภาษาก่อนหน้า VBScript เป็นภาษาสคริปต์เริ่มต้นสำหรับ ASP ในความเป็นจริงมันไม่จำเป็นอย่างยิ่งที่จะเขียน หากเขียนมันจะส่งผลกระทบต่อประสิทธิภาพการดำเนินการของหน้า เราจะไม่พูดถึงปัญหานี้ที่นี่ CodePage ด้านหลังเป็นกุญแจสำคัญและจุดประสงค์คือการบอกเบราว์เซอร์ว่าการเข้ารหัสหน้านี้คืออะไร 936 หมายถึงภาษาจีนที่เรียบง่ายในขณะที่ 950 หมายถึงภาษาจีนดั้งเดิมและ 65001 คือการเข้ารหัส UTF-8 ที่เรากำลังพูดถึงในวันนี้ เราเปลี่ยน 936 เป็น 65001 และประโยคทั้งหมดมีดังนี้:
<%@language = "vbscript" codePage = "65001"%>
เพิ่มอักขระภาษาจีนสองสามตัวเพื่อดูว่าสามารถแสดงได้อย่างถูกต้องหรือไม่
-
Response.write "การทดสอบครั้งแรกของหน้า UTF-8"
-
ตกลงเพียงคลิก "บันทึก" และดำเนินการหน้านี้เพื่อดู หากไม่มีอะไรเกิดขึ้นที่ไม่คาดคิดคุณอาจเห็นคำว่า "หน้าเดียว UTF-8" ที่ปรากฏขึ้น มีภาษาจีนที่อ่านไม่ออก เหตุผลคืออะไร?
ตกลงโปรดคลิกที่เมนู "ไฟล์" ที่ด้านบนและเลือก "บันทึกเป็น" มีการเข้ารหัสที่บรรทัดล่าง ค่าเริ่มต้นควรเป็น ANSI โปรดคลิกกล่องดรอปดาวน์เลือก UTF-8 คลิกบันทึกแล้วลอง หากไม่มีอะไรเกิดขึ้นที่ไม่คาดคิดมันจะยุ่งมากขึ้น ฮ่าฮ่าฉันเวียนหัว ไม่ต้องกังวลคิดเกี่ยวกับเหตุผลเพราะหน้าเว็บที่เราทำจะถูกส่งคืนโดย HTML เมื่อเราเขียน HTML เราเห็นเมตาประโยคต่อหน้าร่างกายนั่นคือหัวซึ่งควรจะเป็นเช่นนี้:
<meta http-equiv = "content-type" content = "text/html; charset = gb2312">>
นั่นคือหน้าที่ระบุจะส่งคืนผลลัพธ์ด้วยการเข้ารหัส GB2312 และจะต้องเขียนก่อนเอาต์พุตของผลการส่งคืน ทุกคนรู้ว่า GB2312 เป็นภาษาจีนที่เรียบง่าย สิ่งที่เรากำลังพูดถึงในวันนี้คือการเข้ารหัส UTF-8 มาเปลี่ยน GB2312 เป็น UTF-8 รหัสทั้งหมดมีดังนี้:
<%@language = "vbscript" codePage = "65001"%>
<meta http-equiv = "content-type" content = "text/html; charset = utf-8">
-
Response.write "การทดสอบครั้งแรกของหน้า UTF-8"
-
ดำเนินการอีกครั้งดีมันจะปรากฏขึ้นตามปกติในครั้งนี้ ...
หน้าเว็บ ASP UTF8 บทสรุปที่อ่านไม่ออก: ใช้การเข้ารหัส UTF-8 นอกเหนือจากการบันทึกไฟล์เป็นรูปแบบ UTF-8 คุณต้องระบุ codePage และ charset ในเวลาเดียวกัน
รหัสที่ทำให้มั่นใจได้ว่า ASP Leaf จะไม่ปรากฏตัวเป็นแบบนี้ควรเป็นเช่นนี้:
(สมมติว่าเป็นใบไม้ของ UTF-8)
< %@ codePage = 65001 %>
<% response.codePage = 65001%>
< % response.charset = "utf-8" %>
คุณสามารถสร้างรหัสไฟล์สาธารณะและหน้าทั้งหมดมีข้อกำหนดการเข้ารหัสนี้
ปัญหารหัส ASP UTF-8 หลังจากอ่านแล้วเราสามารถรู้ได้ว่าในความเป็นจริงการแก้ปัญหารหัสที่อ่านไม่ออกของข้อมูลจำนวนมากที่อ่านโดย AJAX นั้นเหมือนกัน หลักการแก้ปัญหาเหมือนกันใน ASP.NET, PHP และภาษาอื่น ๆ