Saya telah mempelajari pengkodean halaman web sejak lama, karena baru-baru ini saya harus merancang skrip VBS untuk deteksi tautan ramah, dan halaman orang yang Anda tautkan kemungkinan besar berada dalam berbagai pengkodean'/*===== ======== ============ ======== ==========
'* Pendahuluan Saya telah mempelajari pengkodean halaman web sejak lama, karena baru-baru ini saya harus merancang skrip VBS untuk deteksi tautan ramah, dan halaman orang yang Anda tautkan kemungkinan besar berada dalam berbagai pengkodean tidak dapat ditemukan menggunakan GB2312, lalu gunakan UTF -8 Periksa, dan tidak dapat menemukan bukti bahwa pihak lain tidak menautkan ke Anda. Meskipun tidak 100% benar, hampir sama dua kode. Saya tidak sengaja melihat ide di suatu alamat di favorit saya, akhirnya dimungkinkan untuk secara otomatis menentukan pengkodean halaman web saat mengumpulkan artikel. Karena masalah ini sudah lama mengganggu saya selama proses penelitian, walaupun sekarang terkesan sederhana, pasti masih banyak orang yang mencarinya, maka saya posting ketiga fungsi ini.
' * Nama File GetWebCodePage.vbs
' *Penulis Yongfa365
' * Versi v2.0
' * WEB http://www.yongfa365.com
' *Email ke yongfa365[at]qq.com
' * Tulis Pertama http://www.yongfa365.com/Item/GetWebCodePage.vbs.html
' * MadeTime 29-01-2008 20:55:46
' * Modifikasi Terakhir 30-01-2008 20:55:46
' *________________________________________________ ===========*/
Hubungi getHTTPPage(http://www.baidu.com/)
Hubungi getHTTPHalaman(http://www.google.com/)
Hubungi getHTTPPage(http://www.yongfa365.com/)
Hubungi getHTTPPage(http://www.cbdcn.com/)
Hubungi getHTTPPage(http://www.csdn.net/)
'Dapatkan konten yang cocok dan kembalikan arraynya
'getContents(ekspresi, string, apakah akan mengembalikan nilai referensi)
'msgbox getContents(a(.+?)b, a23234b ab a67896896b sadfasdfb ,Benar)(0)
Fungsi getContents(pola, strng, yinyong)
'oleh www.yongfa365.com Harap simpan tautannya saat mencetak ulang, sehingga pengguna akhir dapat memperoleh informasi terkini tepat waktu
Pada Kesalahan Lanjutkan Berikutnya
Setel re = RegExp Baru
re.Pola = pola
re.IgnoreCase = Benar
re.Global = Benar
Setel Kecocokan = re.Execute(strng)
Jika yinyong Lalu
Untuk i = 0 Untuk Cocok. Hitung -1
Jika Cocok(i).Nilai<> Maka RetStr = RetStr & Cocok(i).SubMatches(0) & Liu Yongfa
Berikutnya
Kalau tidak
Untuk Setiap oMatch dalam Pertandingan
Jika oMatch.Value<> Maka RetStr = RetStr & oMatch.Value & Liu Yongfa
Berikutnya
Akhiri Jika
getContents = Pisahkan(RetStr, Liu Yongfa)
Fungsi Akhir
Fungsi getHTTPHalaman(url)
Pada Kesalahan Lanjutkan Berikutnya
Setel xmlhttp = Buat Objek(MSXML2.XMLHTTP)
xmlhttp.Buka Dapatkan, url, Salah
xmlhttp.Kirim
Jika xmlhttp.Status<>200 Kemudian Keluar dari Fungsi
GetBody = xmlhttp.ResponseBody
'Ide Liu Yongfa (www.yongfa365.com) di sini adalah mencari terlebih dahulu berdasarkan string yang dikembalikan dan menemukan header file. Jika belum ada, gunakan GB2312. Umumnya pengkodean dapat langsung dicocokkan.
'Melihat string yang dikembalikan, meskipun karakter Cina kacau, itu tidak mempengaruhi pengkodean kami.
GetCodePage = getContents(charset=[']*([^,']+), xmlhttp.ResponseText, True)(0)
'Lihat pengkodean di file header
Jika Len(GetCodePage)<3 Maka GetCodePage = getContents(charset=[']*([^,']+), xmlhttp.getResponseHeader(Content-Type) , True)(0)
Jika Len(GetCodePage)<3 Maka GetCodePage = gb2312
Setel xmlhttp = Tidak Ada
'Kalimat berikut harus diblokir ketika digunakan secara formal.
URL WScript.Echo & --> & GetCodePage
getHTTPPage = BytesToBstr(GetBody, GetCodePage)
Fungsi Akhir
Fungsi BytesToBstr(Badan, Cset)
Pada Kesalahan Lanjutkan Berikutnya
Redupkan objek aliran
Setel objstream = CreateObject(adodb.stream)
objstream.Jenis = 1
objstream.Mode = 3
objstream.Buka
objstream.Tulis Badan
objstream.Posisi = 0
objstream.Jenis = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Tutup
Setel objstream = Tidak Ada
Fungsi Akhir