อาการ
เมื่อคุณพยายามที่จะโหลดแฟ้ม XML ถูกบันทึกเป็น UTF-7 (การจัดรูปแบบการเข้ารหัส Unicode สำหรับการโอนย้าย), ตัวแยกวิเคราะห์ XML ใน Internet Explorer สร้างข้อความแสดงข้อผิดพลาดต่อไปนี้:
ไม่ถูกต้องในระดับบนสุดของเอกสาร
ข้อผิดพลาดเดียวกันนี้เกิดขึ้นเมื่อใช้ตัวแยกวิเคราะห์ MSXML จากสคริปต์ ฝั่งเซิร์ฟเวอร์ หรือไคลเอ็นต์
สาเหตุ
รุ่นของตัวแยกวิเคราะห์ MSXML ก่อนหน้า MSXML 2.6 ไม่สนับสนุน UTF-7
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ให้ บันทึกเอกสาร XML เป็น UTF-8 รูปการเข้ารหัสที่คุณต้องการโอนย้าย สำหรับ Unicode.MSXML 2.6 หรือรุ่นที่ใหม่กว่าสนับสนุนการเข้ารหัส UTF-7
สถานะ
พฤติกรรมเช่นนี้เกิดจากการออกแบบ
ข้อมูลเพิ่มเติม
ถึงแม้ว่า Unicode เป็นชุดแทนเกือบทั้งหมดในโลกภาษาอักขระแบบเหมือนกัน มีหลายไบต์ที่ใช้แทน หรือการแปลงรูปแบบ ที่แฟ้ม Unicode สามารถใช้ รูปแบบได้รับความนิยมมากที่สุดคือ UTF-8 ซึ่งเป็นตัวแทนอักขระ Unicode เป็นลำดับหนึ่งถึงสี่ 8 บิตไบต์ UTF-7 เป็น 7 บิตการแปลงรูปแบบกำหนดเองเพื่ออนุญาตให้มีข้อความ Unicode ผ่านเกตเวย์ของจดหมายที่สมมติ ASCII และออกบิตการสูงของข้อความ ตามมาตรฐาน XML 1.0, 4.3.3 ส่วนแฟ้ม XML ถูกต้องจำเป็นต้องมีอย่างใดอย่างหนึ่งต่อไปนี้:
-
แฟ้ม Unicode ในรูปแบบ UTF-8
-
แฟ้ม Unicode ในรูปแบบ UTF 16
-
แฟ้มการเข้ารหัสบางอื่น ๆ อักขระ (ตัวอย่างเช่น ASCII) ที่มีเป็นของไบต์แรก
UTF-7 ไม่ได้ใช้เครื่องหมายใบสั่งไบต์ นอกจากนี้ แปลง UTF 7 XML พิเศษของอักขระ