Saya tidak tahu mengapa pengkodean mesin pencari utama sebenarnya berbeda sekarang. Tentu saja, itu gb2312 atau utf-8. Masalah pengkodeannya memusingkan... Ini memusingkan...
Kami mendapatkan kata kunci, biasanya melalui yang dikunjungi halaman. URL dianalisis. Misalnya,
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
Anda harus tahu bahwa ini dikodekan oleh urlencode.
Kita mendapatkan Informasi yang perlu dilakukan dalam 2 langkah. Langkah pertama adalah melakukan urldecoding. Ketika parameter biasa kita valid, ini dilakukan oleh asp sendiri, tapi sekarang kita harus melakukan decoding
manual , tetapi semuanya untuk Dekode gb2312.utf-8 di halaman gb2312. Untuk ini, kita dapat dengan mudah mendekodenya terlebih dahulu, lalu menilai pengkodeannya berdasarkan mesin pencari Tapi
karena website saya adalah halaman utf -8. Sedangkan untuk halaman utf-8, satu-satunya yang saya temukan adalah pengkodean urldecode karakter utf-8 metode terburuk, mengirimkan kata kunci yang dipisahkan menggunakan xmlhttp. Buka halaman asp gb2312, lalu konversikan gb2312 ke utf-8 setelah kode kacau (gb2312
)
.
kata kunci
jika RefererUrl="" atau len(RefererUrl)<1 lalu keluar dari fungsi
pada kesalahan lanjutkan berikutnya
Redupkan kembali
Setel re = RegExp Baru
re.IgnoreCase = Benar
re.Global = Benar
Redupkan a,b,j
'Kata kunci pencarian fuzzy, metode ini lebih cepat dan jangkauannya lebih luas
re.Pattern = "(kata=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|nama=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
Setel a = re.Execute(RefererUrl)
Jika a.Hitung>0 maka
Tetapkan b = a(a.Count-1).SubMatches
Untuk j=1 sampai b.Hitungan
Jika Len(b(j))>0 maka
jika instr(1,RefererUrl,"google",1) lalu
GetSearchKeyword=Pangkas(U8Decode(b(j)))
elseif instr(1,refererurl,"yahoo",1) lalu
GetSearchKeyword=Pangkas(U8Decode(b(j)))
elseif instr(1,refererurl,"yisou",1) lalu
GetSearchKeyword=Pangkas(getkey(b(j)))
elseif instr(1,refererurl,"3721",1) lalu
GetSearchKeyword=Pangkas(getkey(b(j)))
kalau tidak
GetSearchKeyword=Pangkas(getkey(b(j)))
berakhir jika
Fungsi Keluar
berakhir jika
Berikutnya
Akhiri Jika
jika salah maka
err.jelas
GetSearchKeyword = RefererUrl
kalau tidak
Dapatkan Kata Kunci Pencarian = ""
berakhir jika
Fungsi Akhir
Fungsi Pengkodean URL(vstrIn)
redupkan strReturn,i,thischr
strKembali = ""
Untuk i = 1 Ke Len(vstrIn)
ThisChr = Pertengahan(vStrIn,i,1)
Jika Abs(Asc(ThisChr)) < &HFF Lalu
strReturn = strReturn & ThisChr
Kalau tidak
Kode dalam = Asc(Chr Ini)
Jika innerCode < 0 Lalu
Kode dalam = Kode dalam + &H10000
Akhiri Jika
Hight8 = (Kode Dalam Dan &HFF00) &HFF
Low8 = Kode dalam Dan &HFF
strReturn = strReturn & "%" & Hex(Tinggi8) & "%" & Hex(Rendah8)
Akhiri Jika
Berikutnya
Pengkodean URL = strReturn
Fungsi Akhir
fungsi getkey(kunci)
dimoReq
setel oReq = CreateObject("MSXML2.XMLHTTP")
oReq.buka "POST"," http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
oReq.kirim
getkey=UTF2GB(oReq.responseText)
fungsi akhir
fungsi chinese2unicode(Str)
redup
redupkan Str_one
dimStr_unicode
untuk i=1 hingga len(Str)
Str_satu=Tengah(Str,i,1)
Str_unicode=Str_unicode&chr(38)
Str_unicode=Str_unicode&chr(35)
Str_unicode=Str_unicode&chr(120)
Str_unicode=Str_unicode& Hex(ascw(Str_satu))
Str_unicode=Str_unicode&chr(59)
Berikutnya
Respon.Tulis Str_unicode
fungsi akhir
fungsi UTF2GB(UTFStr)
Redupkan penggalian, GBSTR
untuk Dig=1 hingga len(UTFStr)
jika pertengahan(UTFStr,Dig,1)="%" maka
jika len(UTFStr) >= Gali+8 maka
GBStr=GBStr & KonvChina(pertengahan(UTFStr,Dig,9))
Gali=Gali+8
kalau tidak
GBStr=GBStr & pertengahan(UTFStr,Gali,1)
berakhir jika
kalau tidak
GBStr=GBStr & pertengahan(UTFStr,Gali,1)
berakhir jika
Berikutnya
UTF2GB=GBStr
fungsi akhir
fungsi KonvCina(x)
redupkan a,i,j,DigS,Unicode
A=belah(tengah(x,2),"%")
saya=0
j=0
untuk i=0 hingga ubound(A)
SEBUAH(saya)=c16ke2(SEBUAH(saya))
Berikutnya
untuk i=0 hingga ubound(A)-1
GaliS=instr(A(i),"0")
Unikode=""
untuk j=1 hingga DigS-1
jika j=1 maka
A(i)=kanan(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
kalau tidak
saya=saya+1
A(i)=kanan(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
berakhir jika
Berikutnya
jika len(c2to16(Unicode))=4 maka
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
kalau tidak
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
berakhir jika
Berikutnya
fungsi akhir
fungsi U8Decode(enStr)
'Masukkan sekumpulan string yang dipisahkan oleh %, pertama-tama bagilah menjadi beberapa array, dan nilai aturan penyelesaiannya sesuai dengan aturan utf8
'Input: Mati E5 85 Tombol B3 E9 94 Kata AE E5 AD 97
'Keluaran: Mati kunci B9D8 kata BCFC D7D6
redupkan c,i,i2,v,deStr,WeiS
untuk i=1 hingga len(enStr)
c=Tengah(enStr,i,1)
jika c = "%" maka
v=c16to2(Pertengahan(enStr,i+1,2))
'Tentukan posisi dimana 0 muncul pertama kali,
'boleh 1 (byte tunggal), 3 (3-1 byte), 4, 5, 6, 7 tidak boleh 2 dan lebih besar dari 7
‘Secara teoritis mencapai 7, namun pada praktiknya tidak melebihi 3.
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)'Yang pertama menghapus WeiS paling kiri
saya=saya+3
untuk i2=2 hingga WeiS-1
c=c16to2(Pertengahan(enStr,i+1,2))
c=right(c,len(c)-2)'Hapus dua yang paling kiri dari yang lain
v=v & c
saya=saya+3
Berikutnya
jika len(c2to16(v)) =4 maka
deStr=deStr & chrw(c2to10(v))
kalau tidak
deStr=deStr & chr(c2to10(v))
berakhir jika
saya=saya-1
kalau tidak
jika c = "+" maka
deStr=deStr&" "
kalau tidak
deStr=deStr&c
berakhir jika
berakhir jika
Berikutnya
U8Decode = deStr
fungsi akhir
fungsi c16to2(x)
'Fungsi ini digunakan untuk mengonversi heksadesimal ke biner. Panjangnya bisa berapa pun. Umumnya, saat mengonversi UTF-8, panjangnya ada dua, seperti A9
'Contoh: masukan "C2", maka akan diubah menjadi "11000010", dimana 1100 adalah "c" yaitu 12 (1100) dalam desimal, maka 2 (10) harus dilengkapi dengan 4 digit kurang dari 4 menjadi ( 0010).
dimtempstr
dim i:i=0'penunjuk sementara
untuk i=1 ke len(trim(x))
tempstr= c10to2(cint(int("&h" & pertengahan(x,i,1))))
lakukan sambil len(tempstr)<4
tempstr="0" & tempstr'Jika kurang dari 4 digit maka isikan 4 digit
lingkaran
c16to2=c16to2 & tempstr
Berikutnya
fungsi akhir
fungsi c2to16(x)
'Konversi dari biner ke heksadesimal, setiap 4 0 atau 1 diubah menjadi huruf heksadesimal, tentu saja panjang input tidak boleh kelipatan 4
dim i:i=1' penunjuk sementara
untuk i=1 hingga len(x) langkah 4
c2to16=c2to16 & hex(c2to10(pertengahan(x,i,4)))
Berikutnya
fungsi akhir
fungsi c2to10(x)
'Konversi biner ke desimal sederhana, tidak mempertimbangkan 4 bantalan nol di depan yang diperlukan untuk konversi ke heksadesimal.
'Karena fungsi ini sangat berguna! Ini akan digunakan di masa depan, dan orang-orang yang pernah melakukan komunikasi dan perangkat keras harus mengetahuinya.
'String digunakan di sini untuk mewakili biner
c2to10=0
jika x='0' maka keluar dari fungsi'Jika 0, dapatkan 0 dan selesai.
redup i:i=0'penunjuk sementara
untuk i= 0 hingga len(x) -1' Jika tidak, gunakan kode 8421 untuk menghitung. Hal ini sudah diketahui sejak saya pertama kali belajar komputer. Saya rindu Pak Xie Daojian yang mengajari kami banyak hal!
jika pertengahan(x,len(x)-i,1)="1" maka c2to10=c2to10+2^(i)
Berikutnya
fungsi akhir
fungsi c10to2(x)
'Konversi dari desimal ke biner
tanda redup, hasil
hasil = ""
'simbol
tanda = sgn(x)
x = perut(x)
jika x = 0 maka
c10to2 = 0
fungsi keluar
berakhir jika
lakukan sampai x = "0"
hasil = hasil & (x mod 2)
x = x2
lingkaran
hasil = strReverse(hasil)
jika tanda = -1 maka
c10to2 = "-" & hasil
kalau tidak
c10to2 = hasil
berakhir jika
fungsi akhir
fungsi URLDecode(enStr)
redupkan deStr,strSpecial
redup c,i,v
deStr=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
untuk i=1 hingga len(enStr)
c=Tengah(enStr,i,1)
jika c = "%" maka
v=eval("&h"+Tengah(enStr,i+1,2))
jika inStr(strSpecial,chr(v))>0 maka
deStr=deStr&chr(v)
saya=saya+2
kalau tidak
v=eval("&h"+Tengah(enStr,i+1,2)+Tengah(enStr,i+4,2))
deStr=deStr&chr(v)
saya=saya+5
berakhir jika
kalau tidak
jika c = "+" maka
deStr=deStr&" "
kalau tidak
deStr=deStr&c
berakhir jika
berakhir jika
Berikutnya
URLDecode=deStr
Fungsi akhir
Banyak kode yang online. Penulis tidak dapat ditemukan.
PS: Saya harus menerima liburan musim panas sekarang. Karena alasan keluarga, saya tidak ingin tinggal di kota saya .Saya tidak ingin menyebutkan nama kotanya. Kalau tidak, saya akan menarik kenalan. Selama saya tidak di sini Bisakah Anda menghubungi sekolah di Shandong yang dianggap sebagai poin
penting
? pemrograman, tapi saya hanya bisa mendapatkan nama kelas satu X di Olimpiade Informasi. Karena menurut saya teknologi tidak boleh tercermin dalam apa yang disebut kompetisi, sama seperti bakat tidak boleh. Performanya juga sama dalam ujian yang tidak berarti itu mendapat peringkat pertama di setiap provinsi dalam karya elektronikku...tapi itu hanya rata-rata.Studiku rata-rata...jadi selama itu fokus umum...Aku hanya tidak ingin terlalu dekat dengan rumah.
Sekarang ASP sudah sangat mahir, walaupun ada beberapa kekurangan ilmu, seperti masalah coding (keringat...), tapi jaringannya sangat besar, saya rasa saya tidak hanya bisa mendapatkan apa yang disebut ilmu dari buku teks membaca buku ASP.NET, kalau mahal Website sekolah pasti bisa membantu.
Saya sangat antusias dengan teknologi baru. Walaupun saya disebut orang dengan gangguan estetika, tapi saya ingin melihat struktur program saya tanpa muntah darah.
Lupakan saja... Postingan lainnya.
Saya mengembangkan D Database +asp ->xml+xslt->xhtml +css adalah sesuatu yang disebut CMS.
juga menggunakan editor FCK yang hanya saya temukan keluar bahwa itu telah diubah ketika saya datang hari ini. Tetapi sistem FIle FCK Biarkan saya mengubah segalanya.
Sistem ini pasti akan dirilis sebelum liburan musim panas berakhir. Namun, banyak teman yang mengatakan bahwa ada masalah dengan kemudahan penggunaan. .. banyak orang yang tidak tahu cara xslt. Huh...
Jika aku tidak bisa menemukan sekolahnya, aku mungkin akan mengembara, mungkin menghilang. benci semua yang saya lihat dan lakukan di sana.