เนื้อหาภาษาจีน
ก่อนอื่นให้ดูว่าการส่งแบบฟอร์มอิเล็กทรอนิกส์:
การคัดลอกรหัสมีดังนี้:
<scriptLanguage = "JavaScript">
stra = "submit1 = submit & text1 = scsdfsd";
varoreq = newActivexObject ("msxml2.xmlhttp");
oreq.open ("โพสต์", "http: //servername/vdir/tstresult.asp", false);
Oreq.setRequestheader ("ความยาวเนื้อหา", stra.length);
Oreq.setRequestheader ("ประเภทเนื้อหา", "แอปพลิเคชัน/x-www-form-urlencoded");
Oreq.send (Stra);
</script>
ถ้า stra = "submit1 = submit & text1 = scsdfsd"; ถูกแทนที่ด้วย: stra = "submit1 = submit & text1 = ภาษาจีน";
คุณจะพบว่าสิ่งที่ส่งไม่ถูกต้องเลยและ request.form ("text1") ใน ASP ไม่สามารถรับค่าได้เลย ฉันใช้คำขอ BinaryRead เพื่อเขียนเนื้อหาโพสต์ใน HTMLFORM และอ่านแล้วฉันก็พบปัญหา - แบบฟอร์มจะต้องเข้ารหัสเมื่อส่งและภาษาจีนที่เข้ารหัสนั้นเป็นอักขระที่หลบหนีคล้ายกับ %?? ตัวอย่างเช่น "จีน" ถูกเข้ารหัสเป็น:%D6%D0%CE%C4 ฮ่าฮ่าฉันก็โง่มาก ฉันเขียนอย่างชัดเจนในประเภทเนื้อหา-แอปพลิเคชัน/x-www-form-urlencoded แน่นอนว่านี่คือสิ่งที่ urlencoded ดูเหมือน เนื่องจากเป็นกรณีนี้เราก็รู้ว่าต้องทำอย่างไร - ทำการแปลงด้วยตัวเองดูรหัสด้านล่าง:
การคัดลอกรหัสมีดังนี้:
functionurlencoding (vstrin)
strreturn = ""
fori = 1tolen (vstrin)
Thischr = mid (vstrin, i, 1)
ifabs (asc (thischr)) <& hfftthen
strreturn = strreturn & thischr
อื่น
InnerCode = ASC (ThisChr)
ifinnerCode <0 แล้ว
InnerCode = InnerCode+& H10000
endif
High8 = (InnerCodeand & HFF00)/& HFF
low8 = innerCodeand & hff
strreturn = strreturn & "%" & hex (hight8) & "%" & hex (low8)
endif
ต่อไป
urlencoding = streturn
endfunction
stra = urlencoding ("submit1 = submit & text1 = ภาษาจีน")
oreq = createObject ("msxml2.xmlhttp"))
oreq.open "post", "http: //servername/vdir/tstresult.asp", false
Oreq.setRequestheader "ความยาวเนื้อหา", len (stra)
Oreq.setRequestheader "ประเภทเนื้อหา", "แอปพลิเคชัน/x-www-form-urlencoded"
Oreq.sendstra
</script>
(ที่นี่ฉันเปลี่ยนรหัส JavaScript ก่อนหน้าเป็น VBScript ฉันไม่ต้องทำอะไรเลยหลังจากฉันเต็มดูเหตุผล)
ส่วนที่สอง แสดงเนื้อหาภาษาจีนที่ได้รับอย่างถูกต้อง
ตกลงถ้าคุณเขียนเนื้อหาของแบบฟอร์มไปยังฐานข้อมูล/ไฟล์ทางฝั่งเซิร์ฟเวอร์ไม่มีปัญหากับภาษาจีนที่คุณเห็นที่นั่น แต่ถ้าคุณต้องการเห็นการตอบสนองของเซิร์ฟเวอร์ - ปัญหาคือ: ถ้าผลการตอบสนองไม่ใช่ XML ดูผลการทำงานหนักของเรา