Menurut format pengkodean default file halaman web yang dihasilkan oleh FSO dan metode konversi ke pengkodean UTF-8, objek Adodb.Stream digunakan untuk menulis fungsi dan file halaman web UTF-8 berhasil dibuat. Fungsi berikut ini menggunakan objek FSO, dan lokasi filenya adalah FSO.ASP. Hanya ada tiga atribut pengkodean file dari objek FSO. Default sistem adalah Unicode, ASCII, dan tidak ada UTF-8 yang kami inginkan. Oleh karena itu, umumnya file yang dihasilkan dengan menggunakan objek FSO pada sistem Cina ada di web gb2312 format pengkodean halaman, dan pengkodean UTF-8 tidak dapat dihasilkan, oleh karena itu, bahasa Latin seperti Inggris dan Cina dapat ditampilkan secara normal, tetapi bahasa non-Latin seperti Rusia akan menyebabkan halaman kacau.
Copy kode kodenya sebagai berikut:
fungsi buat file (nama file, konten)
set fso=server.CreateObject(scripting.filesystemobject)
'set f1=fso.opentextfile(sfilename,2,true,-1) 'append=8 only write=2 Pengkodean unicode=-1
setel f1=fso.opentextfile(namafile,2,true)
f1.write(puas)
f1.tutup
atur fso=tidak ada
fungsi akhir
Pilih untuk menggunakan objek ADODB.STREAM untuk menggantikan objek FSO, karena kelas STREAM memiliki metode LOADFROMFILE dan SAVETOFILE, dan memiliki atribut penting CHARSET, yang tidak dimiliki FSO. Fungsi berikut ini ditulis di Adodb.Stream dan berhasil menghasilkan file halaman web UTF-8.
Copy kode kodenya sebagai berikut:
fungsi buat file (nama file, konten)
Setel objStream = Server.CreateObject(ADODB.Stream)
Dengan objStream
.Membuka
.Charset = utf-8
.Posisi = objStream.Ukuran
.WriteText=konten
.SaveToFile nama file,2
.Menutup
Akhiri Dengan
Setel objStream = Tidak Ada
fungsi akhir
Untuk program yang menggunakan FSO, selama fungsinya diubah dan nama fungsinya tidak berubah, program tersebut dapat berjalan normal, sehingga lebih bebas masalah dan nyaman.
Jika Anda menggunakan templat untuk menghasilkan file, Anda juga perlu membaca file templat dalam pengkodean UTF-8. Jika tidak, pengkodean file yang benar akan dirilis di latar belakang, namun file templat dibaca dengan pengkodean GB2312 FSO halaman templat dalam bahasa Rusia atau bahasa non-Latin lainnya, karakter kacau akan muncul. Fungsinya diubah sebagai berikut:
Fungsi READFILE FSO awalnya digunakan
Copy kode kodenya sebagai berikut:
fungsi readfile (nama file)
Setel fso=server.CreateObject(scripting.filesystemobject)
Setel f = fso.OpenTextFile(nama file, 1, benar)
jika bukan f.AtEndOfStream maka readfile = f.readAll
Tetapkan f=tidak ada
Tetapkan fso=tidak ada
fungsi akhir
Ganti fungsi READFILE dari ADODB.STREAM
Perhatikan bahwa sesuai dengan kebutuhan sebenarnya, hapus atau pertahankan parameter charset Fungsi readfile (sfilename, charset) charset.
Copy kode kodenya sebagai berikut:
Fungsi readfile (nama file)
F
Setel stm=server.CreateObject(adodb.stream)
stm.Type=2 'Baca dalam mode ini
stm.mode=3
stm.charset=utf-8
stm.buka
stm.loadfromfile nama file
f=stm.bacateks
stm.Tutup
Setel stm=Tidak ada
file baca=f
Fungsi Akhir
Mengenai pengkodean file dan pengkodean halaman web, silakan lihat penjelasan rinci tentang perbedaan antara kumpulan karakter Charset dan pengkodean file Encoding.
Contoh program lainnya
Copy kode kodenya sebagai berikut:
'------------------------------------------------
'Nama fungsi: ReadTextFile
'Fungsi: Gunakan objek AdoDb.Stream untuk membaca file teks dalam format UTF-8
'------------------------------------------------ - --
Fungsi ReadFromTextFile (FileUrl,CharSet)
Redupkan str
Setel stm=server.CreateObject(adodb.stream)
stm.Type=2 'Baca dalam mode ini
stm.mode=3
stm.charset=CharSet
stm.buka
stm.loadfromfile server.MapPath(FileUrl)
str=stm.bacateks
stm.Tutup
Tetapkan stm=tidak ada
BacaDariTeksFile=str
Fungsi Akhir
'------------------------------------------------
'Nama fungsi:WriteToTextFile
'Fungsi: Gunakan objek AdoDb.Stream untuk menulis file teks dalam format UTF-8
'------------------------------------------------ - --
Sub WriteToTextFile (FileUrl, byval Str, CharSet)
Setel stm=Server.CreateObject(adodb.stream)
stm.Type=2 'Baca dalam mode ini
stm.mode=3
stm.charset=CharSet
stm.buka
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Tutup
Setel stm=Tidak ada
Akhiri Sub
Diantaranya, perhatikan masalah jalur di baris ini, stm.SaveToFile server.MapPath(FileUrl),2