وفقًا لتنسيق الترميز الافتراضي لملف صفحة الويب الذي تم إنشاؤه بواسطة FSO وطريقة التحويل إلى ترميز UTF-8، يتم استخدام كائن Adodb.Stream لكتابة الوظيفة ويتم إنشاء ملف صفحة الويب UTF-8 بنجاح. تستخدم الوظائف التالية كائنات FSO، وموقع الملف هو FSO.ASP. لا يوجد سوى ثلاث سمات لترميز الملفات لكائن FSO. الإعداد الافتراضي للنظام هو Unicode وASCII، ولا نريد UTF-8، لذلك، بشكل عام، تكون الملفات التي تم إنشاؤها باستخدام كائن FSO على النظام الصيني موجودة في الويب gb2312 تنسيق ترميز الصفحة، ولا يمكن إنشاء ترميز UTF-8، لذلك يمكن عرض اللغات اللاتينية مثل الإنجليزية والصينية بشكل طبيعي، ولكن اللغات غير اللاتينية مثل الروسية ستتسبب في صفحات مشوهة.
انسخ رمز الكود كما يلي:
وظيفة createfile (اسم الملف، المحتوى)
تعيين fso=server.CreateObject(scripting.filesystemobject)
'set f1=fso.opentextfile(sfilename,2,true,-1) 'append=8 يكتب فقط=2 ترميز Unicode=-1
تعيين f1=fso.opentextfile(sfilename,2,true)
f1.اكتب (المحتوى)
f1.إغلاق
تعيين fso=لا شيء
وظيفة النهاية
اختر استخدام كائن ADODB.STREAM لاستبدال كائن FSO، لأن فئة STREAM تحتوي على أساليب LOADFROMFILE وSAVETOFILE، ولها سمة مهمة CHARSET، والتي لا يمتلكها FSO. تتم كتابة الوظيفة التالية في Adodb.Stream وتقوم بإنشاء ملفات صفحة ويب UTF-8 بنجاح.
انسخ رمز الكود كما يلي:
وظيفة createfile (اسم الملف، المحتوى)
تعيين objStream = Server.CreateObject(ADODB.Stream)
مع أوبجستريم
.يفتح
.مجموعة الأحرف = UTF-8
.Position = objStream.Size
.WriteText=content
.SaveToFile اسم الملف،2
.يغلق
نهاية مع
تعيين objStream = لا شيء
وظيفة النهاية
بالنسبة للبرامج التي تستخدم FSO، طالما تم تعديل الوظيفة وظل اسم الوظيفة دون تغيير، فيمكن تشغيلها بشكل طبيعي، وهو أكثر ملاءمة وخالية من المتاعب.
إذا كنت تستخدم قالبًا لإنشاء ملفات، فستحتاج أيضًا إلى قراءة ملف القالب بتشفير UTF-8. وإلا، سيتم إصدار ترميز الملف الصحيح في الخلفية، ولكن تتم قراءة ملف القالب بتشفير FSO's GB2312 إذا كانت صفحة القالب باللغة الروسية أو غيرها من اللغات غير اللاتينية، فستظهر أحرف مشوهة. يتم تعديل الدالة على النحو التالي:
تم استخدام وظيفة READFILE الخاصة بـ FSO في الأصل
انسخ رمز الكود كما يلي:
وظيفة ملف القراءة (اسم الملف)
تعيين fso=server.CreateObject(scripting.filesystemobject)
تعيين f = fso.OpenTextFile(sfilename, 1, true)
إذا لم يكن f.AtEndOfStream ثم readfile = f.readAll
تعيين و = لا شيء
اضبط fso=لا شيء
وظيفة النهاية
استبدل وظيفة READFILE الخاصة بـ ADODB.STREAM
لاحظ أنه وفقًا للاحتياجات الفعلية، قم بإزالة أو الاحتفاظ بمجموعة أحرف معلمة ملف قراءة الوظيفة (اسم الملف، مجموعة الأحرف).
انسخ رمز الكود كما يلي:
وظيفة ملف القراءة (اسم الملف)
و
تعيين stm=server.CreateObject(adodb.stream)
stm.Type=2 'اقرأ في هذا الوضع
stm.mode=3
stm.charset=utf-8
stm.open
stm.loadfromfile اسم الملف
f=stm.readtext
stm.إغلاق
تعيين stm=لا شيء
ملف القراءة=f
وظيفة النهاية
فيما يتعلق بتشفير الملفات وترميز صفحة الويب، يرجى الرجوع إلى الشرح التفصيلي للفرق بين مجموعة الأحرف وترميز ترميز الملف.
برامج عينة أخرى
انسخ رمز الكود كما يلي:
'------------------------------------------------
'اسم الوظيفة: 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.إغلاق
تعيين 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.إغلاق
تعيين stm=لا شيء
نهاية الفرعية
من بينها، انتبه إلى مشكلة المسار في هذا السطر، stm.SaveToFile server.MapPath(FileUrl),2