تقدم هذه المقالة بشكل أساسي الوظائف المخصصة URLEncode وURLDecode المطبقة في ASP، والتي تختلف عن server.urlencode الذي يأتي مع ASP ويمكن للأصدقاء المحتاجين الرجوع إليها.
عند إجراء منشور في Ajax، وجدت أن البيانات كانت مشوهة دائمًا عند الحصول عليها من الخادم، ونظرت إلى بعض الحلول على الإنترنت ولم أتمكن من اكتشافها بسبب ملف XML رمز مشوه، لا يمكن تحليل ملف XML من جانب الخادم أو حدوث خطأ. لذلك نقوم بتشفيرها قبل النشر، ثم فك تشفيرها على جانب الخادم، وهذا يحل المشكلة، ولكن إذا كانت البيانات كبيرة، فمن المحتمل أن يؤثر ذلك على السرعة.
على الرغم من أن الطلب في ASP سيقوم تلقائيًا بفك تشفير السلسلة المشفرة بعنوان URL، إلا أن Request.BinaryRead(Request.TotalBytes) لن يقوم بفك تشفيرها عند الحصول على بيانات النشر، لذلك يجب فك تشفيرها.
فيما يلي وظيفة فك تشفير وظيفة server.urlencode في ASP التي وجدتها
انسخ رمز الكود كما يلي:
وظيفة 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
وظيفة النهاية
مرفق معها وظيفة تشفير أخرى. الفرق بين هذا وserver.urlencode هو أن server.urlencode سيقوم بتحويل العلامات مثل html أو xml، مثل.
سيتم أيضًا تنفيذ التشفير، ولكن لن يتم تنفيذ الوظيفة أدناه. أستخدم ما يلي للتشفير ثم فك التشفير، لأنني أستخدم XML عند استخدام post.
انسخ رمز الكود كما يلي:
ترميز URL للوظيفة الخاصة (vstrIn)
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
وظيفة النهاية