لا أعرف لماذا يختلف ترميز محركات البحث الرئيسية الآن. بالطبع ، إنه إما GB2312 أو UTF-8. مشكلة الترميز هي صداع ... إنه أمر مزعج للغاية ...
نحصل على كلمات رئيسية ، والتي يتم تحليلها عادة من خلال عنوان URL في صفحة الزيارة. على سبيل المثال
http://www.google.com/search؟hl=zh-cn&q=٪E5٪AD٪A4٪E7٪8B٪AC&lr=
تعلمون جميعًا أن هذا مشفر من خلال urlencode.
نحن بحاجة إلى الذهاب من خلال خطوتين للحصول على المعلومات. الخطوة الأولى هي أداء urldecode. عندما نعيش مع المعلمات العادية ، يتم ذلك من قبل ASP نفسه ، ولكن الآن علينا أن نفعل فك التشفير اليدوي.
هناك العديد من الوظائف عبر الإنترنت ، لكنها جميعها تحل GB2312.UTF-8 لصفحة GB2312. لهذا ، يمكننا فك تشفيره بسهولة أولاً ، ثم الحكم على ترميزه بناءً على محرك البحث. إذا كان UTF-8 ، فسيتم تحويله إلى GB2312.
ولكن نظرًا لأن موقع الويب الخاص بي هو صفحة UTF-8. و PAGE UTF-8 وجدت فقط ترميز urldecode الذي يحل أحرف UTF-8. لقد توقفت هنا لفترة طويلة ، وفي النهاية لم أتمكن من استخدام أسوأ طريقة لإرسال الكلمات الرئيسية المقسمة إلى صفحة ASP لـ GB2312 باستخدام XMLHTTP ، ثم أعيش في رمز مشتعلة (GB2312) ثم تحويل GB2312 TOUTF-8.
رمز التنفيذ الرئيسي التالي.
PublicFunctionGetSearchKeyword (enderurrl) 'البحث عن الكلمات الرئيسية
ifrefererurl = orlen (enderurl) <1thenexitfunction
onerrorresumenext
Dimre
setre = newregexp
re.ignorecase = صحيح
re.global = صحيح
ديما ، ب ، ي
"الكلمات الرئيسية بحث غامضة ، هذه الطريقة أسرع ولها نطاق أكبر
re.pattern = (word = ([[^&]*) | q = ([^&]*) | p = ([^&]*) | Query = ([^&]
seta = re.execute (reparerurl)
ifa.count> 0then
setb = a (a.count-1) .submatches
forj = 1tob.count
iflen (b (j))> 0then
Ifinstr (1 ، enderurrl ، Google ، 1) ثم
GetSearchKeyword = trim (U8Decode (B (J)))
elseifinstr (1 ، enderurl ، Yahoo ، 1) ثم
GetSearchKeyword = trim (U8Decode (B (J)))
elseifinstr (1 ، reparerurl ، yisou ، 1) ثم
getSearchKeyword = trim (getKey (b (j)))
Elseifinstr (1 ، enderurl ، 3721،1) ثم
getSearchKeyword = trim (getKey (b (j)))
آخر
getSearchKeyword = trim (getKey (b (j)))
Endif
exitfunction