Я не знаю, почему сейчас кодировки основных поисковых систем разные. Конечно, это либо gb2312, либо utf-8. Проблема с кодировкой - это головная боль... Это головная боль...
Ключевые слова мы получаем, как правило, через visited. URL-адрес анализируется. Например,
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
Вы должны знать, что это закодировано urlencode.
Получаем Информацию нужно провести в 2 шага. Первым шагом является выполнение urldecoding. Когда наши обычные параметры действительны, это выполняет сам asp, но теперь нам придется выполнять декодирование вручную.
В Интернете есть много функций. , но все они предназначены для декодирования gb2312.utf-8 на странице gb2312. Для этого мы можем легко сначала его декодировать, а затем судить о его кодировке по поисковой системе. Если это utf-8, то преобразовать его в gb2312. Но
так как мой сайт представляет собой страницу utf-8, то единственное, что я нашел, это кодировку urldecode символов utf-8, я надолго задержался здесь. худший метод - отправка разделенных ключевых слов с помощью xmlhttp. Перейдите на страницу gb2312 asp, а затем преобразуйте gb2312 в utf-8 после искаженного кода (gb2312).
Ниже приведен основной код реализации.
GetSearchKeyword(RefererUrl) 'Поиск
.ключевые слова
если RefererUrl="" или len(RefererUrl)<1, то выходим из функции
при ошибке продолжить дальше
Дим ре
Установить re = Новое регулярное выражение
re.IgnoreCase = Истина
re.Global = Истина
Дим а, б, j
«Ключевые слова нечеткого поиска. Этот метод быстрее и имеет больший диапазон.
re.Pattern = "(word=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|name=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
Установите a = re.Execute(RefererUrl)
Если a.Count>0, то
Установить b = a(a.Count-1).SubMatches
От j=1 до b.Count
Если Len(b(j))>0, то
если instr(1,RefererUrl,"google",1) то
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yahoo",1) тогда
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yisou",1) тогда
GetSearchKeyword=Trim(getkey(b(j)))
elseif instr(1,refererurl,"3721",1) тогда
GetSearchKeyword=Trim(getkey(b(j)))
еще
GetSearchKeyword=Trim(getkey(b(j)))
конец, если
Выход из функции
конец, если
Следующий
Конец, если
если ошибка, то
ошибка.очистить
GetSearchKeyword = URL-адрес реферера
еще
GetSearchKeyword = ""
конец, если
Конечная функция
Функция URLEncoding(vstrIn)
dim strReturn,i,thischr
стрReturn = ""
Для i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
Если Abs(Asc(ThisChr)) < &HFF Тогда
стрReturn = стрReturn & ThisChr
Еще
внутреннийКод = Asc(ThisChr)
Если внутренний код < 0 Тогда
внутреннийКод = внутреннийКод + &H10000
Конец, если
Hight8 = (внутренний код и &HFF00) &HFF
Low8 = внутренний код и &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
Конец, если
Следующий
URLEncoding = стрвозврат
Конечная функция
функция getkey(ключ)
dimoReq
установите oReq = CreateObject("MSXML2.XMLHTTP")
oReq.open "POST"," http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
oReq.send
getkey = UTF2GB (oReq.responseText)
конечная функция
функция chinese2unicode(Str)
Дими
тусклый Str_one
dimStr_unicode
для i=1 до len(Str)
Str_one=Средний(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_one))
Str_unicode=Str_unicode&chr(59)
следующий
Response.Write Str_unicode
конечная функция
функция UTF2GB(UTFStr)
Тусклый копай, ГБСТР
от Dig=1 до len(UTFStr)
если мид(UTFStr,Dig,1)="%" то
если len(UTFStr) >= Dig+8, то
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Копать=Копать+8
еще
GBStr=GBStr & Mid(UTFStr,Dig,1)
конец, если
еще
GBStr=GBStr & Mid(UTFStr,Dig,1)
конец, если
следующий
UTF2GB=GBStr
конечная функция
функция ConvChinese(x)
дим а, я, j, DigS, Unicode
A=split(середина(x,2),"%")
я = 0
j=0
для i=0 до ubound(A)
А(я)=c16to2(А(я))
следующий
для i=0 до ubound(A)-1
DigS=instr(A(i),"0")
Юникод=""
для j=1 до DigS-1
если j=1 тогда
A(i)=right(A(i),len(A(i))-DigS)
Юникод=Юникод и А(я)
еще
я=я+1
А(я)=право(А(я),len(А(я))-2)
Юникод=Юникод и А(я)
конец, если
следующий
если len(c2to16(Unicode))=4, то
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
еще
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
конец, если
следующий
завершения функции
U8Decode(enStr)
'Введите набор строк, разделенных %, сначала разделите их на массивы и оцените правила завершения в соответствии с правилами utf8
'Ввод: Выкл. E5 85 Клавиша B3 E9 94 Слово AE E5 AD 97
'Выход: выключен ключ B9D8, слово BCFC D7D6.
dim c,i,i2,v,deStr,WeiS
для i=1 до len(enStr)
c=Средний(enStr,i,1)
если c="%" тогда
v=c16to2(Середина(enStr,i+1,2))
'Определить позицию, где 0 появляется впервые,
'может быть 1 (один байт), 3 (3-1 байт), 4, 5, 6, 7 не может быть 2 и больше 7
«Теоретически она достигает 7, но на практике не превысит 3.
WeiS=инстр(в,"0")
v=right(v,len(v)-WeiS)'Первый удаляет крайний левый WeiS
я=я+3
для i2=2 до WeiS-1
c=c16to2(Середина(enStr,i+1,2))
c=right(c,len(c)-2)'Удалить два крайних левых из остальных
v=v и с
я=я+3
следующий
если len(c2to16(v)) =4, то
deStr=deStr & chrw(c2to10(v))
еще
deStr=deStr & chr(c2to10(v))
конец, если
я = я-1
еще
если c="+" тогда
deStr=deStr&" "
еще
deStr=deStr&c
конец, если
конец, если
следующий
U8Decode = deStr
конечная функция
функция c16to2(x)
«Эта функция используется для преобразования шестнадцатеричного числа в двоичное. Обычно при преобразовании UTF-8 оно имеет две длины, например A9.
'Например: введите «C2», он будет преобразован в «11000010», где 1100 — это «c», что равно 12 (1100) в десятичном виде, затем 2 (10) должно быть дополнено 4 цифрами меньше 4, чтобы стать ( 0010).
димтемпстр
dim i:i=0'временный указатель
для i=1 на len(trim(x))
tempstr= c10to2(cint(int("&h" & Mid(x,i,1))))
делать, пока len(tempstr)<4
tempstr="0" & tempstr'Если цифр меньше 4, то заполняем 4 цифры
петля
c16to2=c16to2 и темпстр
следующий
конечная функция
функция c2to16(x)
'Преобразование из двоичного числа в шестнадцатеричное, каждые 4 0 или 1 преобразуются в шестнадцатеричную букву, конечно, длина ввода не может быть кратна 4
dim i:i=1' временный указатель
для i=1 до len(x) шаг 4
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
следующий
конечная функция
функция c2to10(x)
'Простое преобразование двоичного числа в десятичное, не учитывает заполнение четырьмя ведущими нулями, необходимое для преобразования в шестнадцатеричное число.
«Потому что эта функция очень полезна! Он будет использоваться в будущем, и люди, занимающиеся связью и оборудованием, должны это знать.
'Здесь строка используется для представления двоичного кода
c2to10=0
если x="0", то выходим из функции. Если это 0, просто получите 0 и готово.
dim i:i=0'временный указатель
for i= 0 to len(x) -1' В противном случае для вычислений используйте код 8421. Это было известно с тех пор, как я впервые начал изучать компьютеры. Я скучаю по господину Се Даоцзяну, который так многому нас научил!
если Mid(x,len(x)-i,1)="1" то c2to10=c2to10+2^(i)
следующий
конечная функция
функция c10to2(x)
'Преобразование десятичной дроби в двоичную
тусклый знак, результат
результат = ""
'символ
знак = знак(х)
х = абс (х)
если х = 0, то
с10то2 = 0
функция выхода
конец, если
делать до тех пор, пока x = "0"
результат = результат & (x mod 2)
х = х2
петля
результат = strReverse (результат)
если знак = -1, то
c10to2 = "-" и результат
еще
c10to2 = результат
конец, если
конечная функция
function URLDecode(enStr)
dim deStr,strSpecial
дим c,i,v
деСтр=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
от i=1 до len(enStr)
c=Средний(enStr,i,1)
если c="%" тогда
v=eval("&h"+Mid(enStr,i+1,2))
если inStr(strSpecial,chr(v))>0, то
деСтр=деСтр&хр(в)
я=я+2
еще
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
деСтр=деСтр&хр(в)
я=я+5
конец, если
еще
если c="+" тогда
deStr=deStr&" "
еще
deStr=deStr&c
конец, если
конец, если
следующий
URLDecode=deStr
Конечная функция
Многие коды находятся в сети. Автор не найден.
PS: Сейчас мне нужно согласиться на летние каникулы. По семейным обстоятельствам я не хочу оставаться в своем городе. Вступительные экзамены в среднюю школу достигли местного значения. . Я не хочу называть название города, иначе я привлечу знакомых, пока меня здесь нет. Можете ли вы связаться со школой в Шаньдуне, которая считается ключевой?
QQ: 32113739
Меня очень интересует? программированию, но я могу получить первоклассное имя X только на Информационной олимпиаде. Потому что я считаю, что технология не должна отражаться на так называемом конкурсе, как и талант. На этих бессмысленных экзаменах я тоже. получил первое место в каждой провинции по своим электронным работам... но это просто средне. Моя учеба средняя... так что, пока это общая цель... я просто не хочу быть слишком близко к дому.
Сейчас ASP очень владею, хотя есть некоторые недостатки в знаниях, например, проблемы с кодированием (пот...), но сеть настолько большая, что я думаю, что могу получить так называемые знания не только из учебников. И теперь я здесь. чтение книги ASP.NET, если она дорогая. Школьный сайт определенно может помочь.
Я с большим энтузиазмом отношусь к новым технологиям. Хотя меня называют человеком с эстетическими нарушениями, но я хочу видеть структуру своей программы без рвоты.
Забудьте об этом... Еще сообщения.
Я разработал D Database +asp ->xml+xslt->xhtml +css — это нечто, называемое CMS.
также использует редактор FCK, который я только нашел. Оказалось, что она была изменена, когда я пришел сегодня. Но система FCK FIle Позвольте мне все изменить.
Эта система обязательно выйдет до конца летних каникул. Однако многие друзья говорят, что есть проблемы с удобством использования. ..многие не умеют xslt.Эх...
Если я не найду школу, возможно, я побродю, может, исчезну. Конечно, это не угроза... Я просто ненавижу свой город, ненавижу все, что вижу и делаю там.