اليوم ، عندما كنت أقوم بتصحيح برنامج UTF-8 في شريط البحث ، وجدت أن وثيقة تنسيق UTF-8 التي تم إنشاؤها تحتوي على رمز مشوه ، وكان الملف الأصلي كان
رمز create_html.asp كما يلي:
نسخة الكود كما يلي:
<٪@language = "vbscript" codepage = "65001" ٪>
<٪
setObjrs = server.createBject ("scripting.filesystemObject")
conn = server.mappath ("example.xml")
setStream = objrs.opentextFile (conn ، 1 ، true ، -2)
المحتوى = Stream.Readall
استجابة. write (المحتوى)
Stream.close
٪>
الوظيفة لتنفيذ هذا الرمز هي: قراءة النص بما في ذلك الصينية من example.xml (تنسيق UTF-8) ، ثم إخراجه ، ولكن في كل مرة يتم فيها تشويه الإخراج. هذه المشكلة أزعجتني حقًا لفترة طويلة. في وقت لاحق ، تم حلها بمساعدة المنتديات الكلاسيكية "Xiao Han" و "Xiao Xiaoyu". شكرا لهم.
ربما كنت مخطئًا في البداية ، ولكن الآن يتم تعديل الكود الصحيح على النحو التالي ، باستخدام الكود الذي قدمه "Xiao Xiaoyu" ، بما في ذلك استخدام محتوى القراءة لإنشاء مستند تنسيق UTF-8 جديد. الرمز التفصيلي كما يلي:
نسخة الكود كما يلي:
<٪@language = "vbscript" codepage = "65001" ٪>
<٪ استجابة. codepage = 65001 ٪>
<٪ response.charset = "utf-8" ٪>
<٪
"إعلان المتغيرات
dimread_path ، write_paht ، المحتوى
'---- اقرأ محتوى الملف --------------------------------------------------------------------------------------------------------------------
FunctionReadTextFile (FilePath ، Charset)
dimstm
setStm = server.createBject ("Adodb.stream")
stm.type = 1'AdtypeBinary ، اقرأ في وفقًا للبيانات الثنائية
STM.Mode = 3'AdModereadWrite ، يمكن استخدام 3 فقط هنا لاستخدام الآخرين وسيؤدي إلى أخطاء.
stm.open
stm.loadfromfilefilepath
stm.position = 0'move المؤشر مرة أخرى إلى نقطة البداية
stm.type = 2'text data
stm.charset = charset
ReadTextFile = stm.readtext
stm.close
setStm = لا شيء
الوظيفية
'--- اكتب إلى الملف -----------------------------
subwritetextFile (FilePath ، FileContent ، Charset)
dimstm
setStm = server.createBject ("Adodb.stream")
stm.type = 2'Adtypetext ، بيانات النص
stm.mode = 3'AdModereadWrite ، قراءة وكتابة ، إذا كانت هذه المعلمة تستخدم 2 ، فسيؤدي ذلك إلى خطأ.