لا أعرف سبب اختلاف ترميزات محركات البحث الرئيسية الآن. بالطبع، إنها إما gb2312 أو utf-8. مشكلة التشفير تمثل صداعًا... إنها صداع...
نحصل على الكلمات الرئيسية، عادةً من خلال الزيارة يتم تحليل عنوان URL للصفحات. على سبيل المثال،
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
يجب أن تعلم أن هذا مشفر بواسطة urlencode.
نحصل على المعلومات التي يجب تنفيذها في خطوتين. الخطوة الأولى هي تنفيذ تشفير url. عندما تكون المعلمات العادية لدينا صالحة، يتم تنفيذ ذلك بواسطة asp نفسه، ولكن يتعين علينا الآن إجراء فك التشفير
يدويًا ، ولكنها جميعها مخصصة لفك تشفير gb2312.utf-8 في صفحة gb2312، ولهذا يمكننا فك تشفيره بسهولة أولاً، ومن ثم الحكم على ترميزه وفقًا لمحرك البحث. إذا كان utf-8، فقم بتحويله إلى gb2312 ولكن
نظرًا لأن موقع الويب الخاص بي هو صفحة utf-8، فإن الشيء الوحيد الذي وجدته هو ترميز urldecode لأحرف utf-8 التي توقفت هنا لفترة طويلة الطريقة الأسوأ هي إرسال الكلمات الرئيسية المنفصلة باستخدام xmlhttp. انتقل إلى صفحة gb2312 asp، ثم قم بتحويل gb2312 إلى utf-8 بعد التعليمات البرمجية المشوهة (gb2312
)
. الكلمات الرئيسية
إذا كان RefererUrl = "" أو len (RefererUrl) <1 ثم قم بالخروج من الوظيفة
على خطأ استئناف المقبل
إعادة خافتة
تعيين إعادة = جديد RegExp
re.IgnoreCase = صحيح
re.Global = صحيح
خافت أ، ب، ي
"كلمات البحث الغامضة، هذه الطريقة أسرع ولها نطاق أكبر."
re.Pattern = "(word=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|name=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
تعيين = re.Execute(RefererUrl)
إذا كان a.Count>0 ثم
المجموعة ب = أ(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 = RefererUrl
آخر
GetSearchKeyword = ""
نهاية إذا
وظيفة النهاية
ترميز URL للوظيفة (vstrIn)
خافت strReturn،i،thischr
strReturn = ""
لأني = 1 إلى لين (vstrIn)
ThisChr = منتصف (vStrIn،i،1)
إذا كان Abs(Asc(ThisChr)) <&HFF إذن
strReturn = strReturn & ThisChr
آخر
الكود الداخلي = تصاعدي (ThisChr)
إذا كان الكود الداخلي <0 ثم
الكود الداخلي = الكود الداخلي + &H10000
نهاية إذا
Hight8 = (innerCode و&HFF00) &HFF
Low8 = الكود الداخلي و&HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
نهاية إذا
التالي
URLEncoding = strReturn
وظيفة النهاية
وظيفة 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
لأني = 1 إلى لين (ستر)
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)
التالي
الاستجابة.اكتب Str_unicode
وظيفة النهاية
الدالة UTF2GB(UTFStr)
حفر خافت،GBSTR
من أجل Dig=1 إلى len(UTFStr)
إذا كان mid(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)
dim a,i,j,DigS,Unicode
أ = انقسام (منتصف (س، 2)، "٪")
أنا = 0
ي=0
لأني = 0 إلى Ubound(A)
ا(ط)=c16to2(أ(ط))
التالي
لأني=0 إلى ubound(A)-1
DigS=instr(A(i),"0")
يونيكود = ""
لـ j=1 إلى DigS-1
إذا ي = 1 ثم
A(i)=يمين(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
آخر
ط=ط+1
ا(i)=يمين(A(i),لين(A(i))-2)
Unicode=Unicode & A(i)
نهاية إذا
التالي
إذا 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
خافت c،i،i2،v،deStr،WeiS
for i=1 to len(enStr)
ج=منتصف(enStr,i,1)
إذا ج = "٪" ثم
v=c16to2(Mid(enStr,i+1,2))
'حدد الموضع الذي يظهر فيه الرقم 0 لأول مرة،
'قد يكون 1 (بايت واحد)، 3 (3-1 بايت)، 4، 5، 6، 7 لا يمكن أن يكون 2 وأكبر من 7
نظرياً يصل إلى 7، لكنه عملياً لن يتجاوز 3.
وي إس = instr (v، "0")
v=right(v,len(v)-WeiS)'الأول يزيل WeiS في أقصى اليسار
ط=ط+3
لـ i2=2 إلى WeiS-1
ج=c16to2(منتصف(enStr,i+1,2))
c=right(c,len(c)-2)'أزل الاثنين الموجودين في أقصى اليسار من الباقي
الخامس = الخامس وج
ط=ط+3
التالي
إذا كان len(c2to16(v)) = 4 إذن
deStr=deStr & chrw(c2to10(v))
آخر
deStr=deStr & chr(c2to10(v))
نهاية إذا
ط=ط-1
آخر
إذا ج = "+" ثم
ديستر=ديستر&" "
آخر
deStr=deStr&c
نهاية إذا
نهاية إذا
التالي
U8Decode = deStr
النهاية
c16to2(x)
'يتم استخدام هذه الوظيفة لتحويل النظام السداسي العشري إلى ثنائي. ويمكن أن يكون بأي طول بشكل عام، عند تحويل UTF-8، يكون بطولين، مثل A9
'على سبيل المثال: أدخل "C2"، سيتم تحويله إلى "11000010"، حيث 1100 هو "c" وهو 12 (1100) بالنظام العشري، ثم يجب إكمال 2 (10) بأربعة أرقام أقل من 4 لتصبح ( 0010).
dimtempstr
خافت 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 & tempstr
التالي
النهاية
c2to16(x)
'التحويل من ثنائي إلى سداسي عشري، يتم تحويل كل 4 0 أو 1 إلى حرف سداسي عشري، وبالطبع لا يمكن أن يكون طول الإدخال مضاعفًا لـ 4
dim i:i=1' مؤشر مؤقت
من أجل i=1 إلى len(x) الخطوة 4
c2to16=c2to16 & سداسي عشري(c2to10(منتصف(x,i,4)))
التالي
النهاية
c2to10(x)
'التحويل البسيط من ثنائي إلى عشري، لا يأخذ في الاعتبار 4 حشوة صفرية بادئة مطلوبة للتحويل إلى النظام الست عشري.
'لأن هذه الوظيفة مفيدة جدًا! سيتم استخدامه في المستقبل، ويجب أن يعرفه الأشخاص الذين قاموا بالاتصالات والأجهزة.
'يتم استخدام السلسلة هنا لتمثيل ثنائي
c2to10=0
إذا كان x = "0" ثم اخرج من الوظيفة "إذا كانت 0، فما عليك سوى الحصول على 0 والانتهاء من ذلك."
خافت i:i=0'مؤشر مؤقت
for i= 0 to len(x) -1' وإلا، استخدم رمز 8421 للحساب. لقد كان هذا معروفًا منذ أن بدأت في تعلم أجهزة الكمبيوتر لأول مرة. أفتقد السيد Xie Daojian الذي علمنا الكثير!
إذا كان mid(x,len(x)-i,1)="1" ثم c2to10=c2to10+2^(i)
التالي
النهاية
c10to2(x)
'التحويل من العشري إلى الثنائي
علامة خافتة، النتيجة
النتيجة = ""
'رمز
علامة = SGN (خ)
س = القيمة المطلقة (س)
إذا س = 0 ثم
ج10to2 = 0
وظيفة الخروج
نهاية إذا
افعل حتى س = "0"
النتيجة = النتيجة & (x mod 2)
س = س2
حلقة
النتيجة = strReverse (نتيجة)
إذا علامة = -1 ثم
c10to2 = "-" & result
آخر
c10to2 = result
نهاية إذا
وظيفة النهاية
URLDecode(enStr)
خافت deStr، strSpecial
خافت ج، ط، الخامس
ديستر =""
strSpecial = "!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
لأني = 1 إلى لين (enStr)
ج=منتصف(enStr,i,1)
إذا ج = "٪" ثم
v=eval("&h"+Mid(enStr,i+1,2))
إذا كان inStr(strSpecial,chr(v))>0 إذن
deStr=deStr&chr(v)
ط=ط+2
آخر
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
ط=ط+5
نهاية إذا
آخر
إذا ج = "+" ثم
ديستر=ديستر&" "
آخر
deStr=deStr&c
نهاية إذا
نهاية إذا
التالي
URLDecode=deStr
وظيفة النهاية
العديد من الرموز متاحة على الإنترنت.
ملاحظة: لا بد لي من قبول العطلة الصيفية الآن لأسباب عائلية، ولا أريد البقاء في مدينتي لا أريد أن أقول اسم المدينة، وإلا سأجذب المعارف طالما أنني لست هنا. هل يمكنك الاتصال بالمدرسة في شاندونغ التي تعتبر نقطة رئيسية؟
س: 32113739
أنا مهتم جدًا بها البرمجة، لكن لا يمكنني الحصول إلا على اسم X من الدرجة الأولى في أولمبياد المعلومات لأنني أعتقد أنه لا ينبغي أن تنعكس التكنولوجيا في ما يسمى بالمنافسة، تمامًا كما لا ينبغي أن يكون الأداء هو نفسه في تلك الاختبارات التي لا معنى لها حصلت على المركز الأول في كل محافظة في أعمالي الإلكترونية... لكنه مجرد متوسط. دراستي متوسطة... لذا طالما أن هذا هو التركيز العام... لا أريد أن أكون قريبًا جدًا من المنزل.
الآن أصبح ASP ماهرًا جدًا، على الرغم من وجود بعض أوجه القصور في المعرفة، مثل مشاكل البرمجة (العرق...)، لكن الشبكة كبيرة جدًا، وأعتقد أنني لا أستطيع الحصول على ما يسمى بالمعرفة من الكتب المدرسية فقط، وأنا الآن كذلك قراءة كتاب ASP.NET، إذا كان باهظ الثمن، يمكن لموقع المدرسة أن يساعدني بالتأكيد.
أنا متحمس جدًا للتقنيات الجديدة على الرغم من أنني أُطلق عليه اسم شخص يعاني من ضعف جمالي، لكنني أريد أن أرى هيكل برنامجي دون أن أتقيأ الدم.
انسَ الأمر... المزيد من المشاركات.
لقد قمت بتطوير D Database +asp ->xml+xslt->xhtml +css وهو شيء يسمى CMS
يستخدم أيضًا محرر FCK الذي وجدته لقد تم تغييره عندما جئت اليوم، لكن نظام FCK FIle دعني أغير كل شيء.
سيتم إصدار هذا النظام بالتأكيد قبل نهاية العطلة الصيفية، ومع ذلك، يقول العديد من الأصدقاء أن هناك مشاكل في سهولة الاستخدام. .. كثير من الناس لا يعرفون كيف يتنهدون...
إذا لم أتمكن من العثور على المدرسة، فقد أتجول، وربما أختفي. بالطبع هذا ليس تهديدًا... أنا فقط أكره مدينتي، أكره كل ما أراه وأفعله هناك.