يقوم UTF8 إلى GB2312 بتحويل النص المشفر UTF8 إلى نص مشفر بـ GB، وسيتم تحويل النص المشفر UTF8 إلى رموز أحرف صينية يمكن للأصدقاء المحتاجين الرجوع إليها. 1. 'UTF إلى GB --- تحويل النص المشفر UTF8 إلى نص مشفر GB
انسخ رمز الكود كما يلي:
الدالة UTF2GB(UTFStr)
من أجل Dig=1 إلى len(UTFStr)
'قم بالتحويل إذا كان النص المشفر بـ UTF8 يبدأ بـ %
إذا كان mid(UTFStr,Dig,1)=% إذن
'يتم تحويل النص المشفر UTF8 الأكبر من 8 إلى أحرف صينية
إذا 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
وظيفة النهاية
'سيتم تحويل النص المشفر UTF8 إلى أحرف صينية
الدالة ConvChinese(x)
أ = انقسام (منتصف (س، 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)))
نهاية إذا
التالي
وظيفة النهاية
'تحويل الكود الثنائي إلى كود سداسي عشري
الدالة c2to16(x)
أنا = 1
من أجل i=1 إلى len(x) الخطوة 4
c2to16=c2to16 & سداسي عشري(c2to10(منتصف(x,i,4)))
التالي
وظيفة النهاية
'تحويل الرمز الثنائي إلى رمز عشري
الدالة c2to10(x)
c2to10=0
إذا كان x=0 ثم قم بالخروج من الوظيفة
أنا = 0
لأني= 0 إلى لين(x) -1
إذا كان mid(x,len(x)-i,1)=1 ثم c2to10=c2to10+2^(i)
التالي
وظيفة النهاية
'تحويل الكود الست عشري إلى كود ثنائي
الدالة c16to2(x)
أنا = 0
لأني = 1 إلى لين (تقليم (س))
tempstr= c10to2(cint(int(&h & mid(x,i,1))))
افعل ذلك أثناء len(tempstr)<4
tempstr=0&tempstr
حلقة
c16to2=c16to2 & tempstr
التالي
وظيفة النهاية
'تحويل الرمز العشري إلى رمز ثنائي
الدالة c10to2(x)
ماي سيجن=sgn(x)
س = القيمة المطلقة (س)
الحفريات = 1
يفعل
إذا كان x<2^DigS إذن
الخروج القيام به
آخر
ديجس=ديجس+1
نهاية إذا
حلقة
درجة الحرارة = س
أنا = 0
لـ i=DigS إلى الخطوة 1
إذا tempnum>=2^(i-1) إذن
درجة الحرارة = درجة الحرارة -2 ^ (ط -1)
c10to2=c10to2 & 1
آخر
c10to2=c10to2 & 0
نهاية إذا
التالي
إذا كان mysign=-1 ثم c10to2=- & c10to2
وظيفة النهاية
2. 'GB إلى UTF8--تحويل النص المشفر بالجيجابايت إلى نص مشفر بـ UTF8
انسخ رمز الكود كما يلي:
وظيفة لUTF8 (szInput)
خافت WCH، أوتش، szRet
خافت س
خافت NASC، nAsc2، nAsc3
'إذا كانت معلمة الإدخال فارغة، فاخرج من الوظيفة
إذا كان szInput = إذن
toUTF8 = szInput
وظيفة الخروج
نهاية إذا
'ابدأ التحويل
لـ x = 1 إلى Len(szInput)
'استخدم الوظيفة المتوسطة لتقسيم النص المشفر بالجيجابايت
wch = منتصف (szInput، x، 1)
'استخدم الدالة ascW لإرجاع رمز حرف Unicode لكل نص مشفر بالجيجابايت
'ملاحظة: تقوم الدالة asc بإرجاع رمز حرف ANSI، وانتبه إلى الفرق
تصاعدي = تصاعدي (wch)
إذا كان nAsc <0، فإن nAsc = nAsc + 65536
إذا كان (nAsc و&HFF80) = 0 إذن
szRet = szRet & wch
آخر
إذا (nAsc و&HF000) = 0 إذن
uch = % & Hex(((nAsc / 2 ^ 6)) أو &HC0) & Hex(nAsc و&H3F أو &H80)
szRet = szRet&uch
آخر
'يعتمد رمز حرف Unicode للنص المشفر بالجيجابايت قالبًا ثلاثي البايت بين 0800 - FFFF
uch = % & Hex((nAsc / 2 ^ 12) أو &HE0) & % & _
سداسي عشري ((nAsc / 2 ^ 6) و &H3F أو &H80) & % & _
سداسي عشري (nAsc و&H3F أو &H80)
szRet = szRet&uch
نهاية إذا
نهاية إذا
التالي
toUTF8 = szRet
وظيفة النهاية
3. 'GB إلى Unicode --- تحويل النص المشفر GB إلى نص مشفر Unicode
انسخ رمز الكود كما يلي:
الدالة chinese2unicode(Str)
خافت أنا
خافت Str_one
dimStr_unicode
إذا (isnull(Str)) إذن
وظيفة الخروج
نهاية إذا
لأني = 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)
التالي
chinese2unicode=Str_unicode
وظيفة النهاية
4. 'فك تشفير URL
انسخ رمز الكود كما يلي:
وظيفة URLDecode(enStr)
خافت ديستر
خافت ج، ط، الخامس
ديستر=
لأني = 1 إلى لين (enStr)
ج=منتصف(enStr,i,1)
إذا ج =٪ ثم
v=eval(&h+Mid(enStr,i+1,2))
إذا كان v<128 إذن
deStr=deStr&chr(v)
ط=ط+2
آخر
إذا كان isvalidhex(mid(enstr,i,3)) إذن
إذا كان isvalidhex(mid(enstr,i+3,3)) إذن
v=eval(&h+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
ط=ط+5
آخر
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
ط=ط+3
نهاية إذا
آخر
destr=destr&c
نهاية إذا
نهاية إذا
آخر
إذا ج=+ ثم
ديستر=ديستر&
آخر
deStr=deStr&c
نهاية إذا
نهاية إذا
التالي
URLDecode=deStr
وظيفة النهاية
"تحديد ما إذا كان رمزًا سداسيًا عشريًا صالحًا."
الدالة صالحة (str)
خافت ج
isvalidhex=true
شارع = ucase (شارع)
إذا كان len(str)<>3 فإن الدالة isvalidhex=false:exit
إذا بقي (str,1)<>% فإن الدالة isvalidhex=false:exit
ج = منتصف (شارع،2،1)
إذا لم يكن (((c>=0) و (c<=9)) أو ((c>=A) و (c<=Z))) فإن الدالة isvalidhex=false:exit
ج = منتصف (شارع،3،1)
إذا لم يكن (((c>=0) و (c<=9)) أو ((c>=A) و (c<=Z))) فإن الدالة isvalidhex=false:exit
وظيفة النهاية
%>