วิธีแก้ไขอักขระที่อ่านไม่ออกเมื่อใช้ fso.OpenTextFil เพื่ออ่านไฟล์ UTF-8 หรือใช้ FSO.save เพื่อสร้างไฟล์ UTF-8 วิธีการที่ใช้ในการสร้างเพจแบบคงที่คือการอ่านโค้ด html ของหน้า asp และบันทึกเป็น html วิธีนี้
เนื่องจากเพจไดนามิกถูกเข้ารหัสในรูปแบบ utf8 หลังจากที่ฉันได้รับโค้ด html ฉันจึงใช้ fso เพื่อบันทึก html ที่สร้างขึ้นสำเร็จ แต่ไม่สามารถเข้าถึงได้เนื่องจากมีปัญหากับการเข้ารหัส html และคุณก็สามารถทำได้ เข้าถึงได้ตามปกติ การดำเนินการนี้ใช้ไม่ได้เนื่องจากทั้งไซต์ถูกเข้ารหัสในรูปแบบ utf8 หากต้องการเปิดหน้านี้ คุณต้องเลือกการเข้ารหัสก่อนที่จะเข้าถึง การดำเนินการนี้ยุ่งยากเกินไป และไม่มีใครเต็มใจที่จะเข้าถึงหน้านี้ ดังนั้นจึงต้องใช้การเข้ารหัสในรูปแบบ utf8 ปัญหาจะต้องได้รับการแก้ไข
หลังจากค้นหา ฉันพบว่า fso ไม่สามารถสร้างไฟล์ในรูปแบบ utf8 ได้ ดังนั้นลองวิธีอื่น
หลังจากค้นหามาสักระยะหนึ่ง ฉันพบฟังก์ชันที่สามารถสร้างไฟล์แทน fso ได้ โดยจะใช้อ็อบเจ็กต์ adodb.stream เพื่อสร้างไฟล์ utf8 ดังนี้
คัดลอกรหัสรหัสดังต่อไปนี้:
-
'ชื่อฟังก์ชัน: ReadTextFile
'ฟังก์ชัน: ใช้ออบเจ็กต์ AdoDb.Stream เพื่ออ่านไฟล์ข้อความในรูปแบบ UTF-8
'------------------------------------------------ - --
ฟังก์ชั่น ReadFromTextFile (FileUrl, CharSet)
ถนนสลัว
ตั้งค่า stm=server.CreateObject("adodb.stream")
stm.Type=2 'อ่านในโหมดนี้'
stm.mode=3
stm.charset=ชุดอักขระ
stm.เปิด
stm.loadfromfile เซิร์ฟเวอร์ MapPath (FileUrl)
str=stm.readtext
stm.ปิด
set stm=nothing บทความนี้มาจาก
ReadFromTextFile=str
สิ้นสุดฟังก์ชัน
-
'ชื่อฟังก์ชัน:WriteToTextFile
'ฟังก์ชัน: ใช้ออบเจ็กต์ AdoDb.Stream เพื่อเขียนไฟล์ข้อความในรูปแบบ UTF-8
'------------------------------------------------ - --
ย่อย WriteToTextFile (FileUrl, byval Str, CharSet)
ตั้งค่า stm=server.CreateObject("adodb.stream")
stm.Type=2 'อ่านในโหมดนี้'
stm.mode=3
stm.charset=ชุดอักขระ
stm.เปิด
stm.WriteText STR
เซิร์ฟเวอร์ stm.SaveToFile.MapPath(FileUrl),2
stm.ฟลัช
stm.ปิด
ตั้ง stm=ไม่มีอะไร
จบย่อย IISBOY.COM,IISBOY.COM
วิธีใช้:
คัดลอกรหัสรหัสดังต่อไปนี้:
เรียก WriteToTextFile ("../index.html", "aaa", "utf-8")
เสร็จแล้ว.