الحل للأحرف المشوهة عند استخدام fso.OpenTextFil لقراءة ملفات UTF-8 أو استخدام FSO.save لإنشاء ملفات UTF-8. الطريقة المستخدمة لإنشاء صفحات ثابتة هي قراءة كود html لصفحة asp وحفظها كملف ملف html بهذه الطريقة
نظرًا لأن الصفحة الديناميكية مشفرة بتنسيق utf8، وبعد أن حصلت على كود html الخاص بها، استخدمت fso لحفظها، وكان html الذي تم إنشاؤه ناجحًا، ولكن لا يمكن الوصول إليه نظرًا لوجود مشكلة في ترميز html، حدد gb2312 ويمكنك ذلك الوصول إليه بشكل طبيعي. لن ينجح هذا، لأن الموقع بأكمله مشفر بتنسيق 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=CharSet
stm.open
stm.loadfromfile server.MapPath(FileUrl)
str=stm.readtext
stm.Close
تعيين stm=لا شيء هذه المقالة تأتي من
ReadFromTextFile=str
وظيفة النهاية
'------------------------------------------------
'اسم الوظيفة:WriteToTextFile
'الوظيفة: استخدم كائن AdoDb.Stream لكتابة ملفات نصية بتنسيق UTF-8
'------------------------------------------------ - --
Sub WriteToTextFile (FileUrl، byval Str، CharSet)
تعيين stm=server.CreateObject("adodb.stream")
stm.Type=2 'اقرأ في هذا الوضع
stm.mode=3
stm.charset=CharSet
stm.open
stm.WriteText شارع
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Close
تعيين stm=لا شيء
النهاية الفرعية IISBOY.COM، IISBOY.COM
كيفية الاستخدام:
انسخ رمز الكود كما يلي:
استدعاء WriteToTextFile ("../index.html"، "aaa"، "utf-8")
منتهي.