واجهت المشكلة عندما صنعت ميزة صغيرة. للحصول على ذلك مرة أخرى ، ولكن هذا سيزيد من كفاءة تنفيذ الكود.
على سبيل المثال ، مثل "الأحرف الصينية"
الترميز بموجب UTF-8 هو: ٪ E6 ٪ B1 ٪ 89 ٪ E5 ٪ AD ٪ 97
الترميز تحت GB2312 هو: ٪ BA ٪ BA ٪ D7 ٪ D6 D6
كما أن صفحة الويب الخاصة بي مشفرة حاليًا في UTF-8 ، لذا كيفية تحويل سلسلة الترميز الخالصة هذه إلى أحرف صينية؟
بادئ ذي بدء ، يجب تضمين الوظيفة التالية في صفحتي:
وظيفة urldecode (ENSTR)
تدمير خافت ، strspecial
Dim C ، أنا ، الخامس
تدمير =
strspecial =!#$ ٪
لأني = 1 إلى لين (ENSTR)
ج = منتصف (Enstr ، i ، 1)
إذا ج = ٪ ثم
v = eval (& h+mid (enstr ، i+1،2))
إذا instr (strspecial ، chr (v))> 0 ثم
DestR = DestR & CHR (V)
i = i+2
آخر
v = eval (& h+ mid (enstr ، i+ 1،2)+ mid (enstr ، i+ 4،2))
DestR = DestR & CHR (V)
i = i+5
إنهاء إذا
آخر
إذا كان c =+ ثم
تدمير = تدمير &
آخر
DestR = DestR & C
إنهاء إذا
إنهاء إذا
التالي
urldecode = DestR
وظيفة نهاية
الوظيفة أعلاه هي وظيفة فك تشفير URL.
وظيفة UTF2GB (UTFSTR)
للحفر = 1 إلى لين (UTFSTR)
إذا بدأ نص الترميز UTF8 بنسبة ٪ ، فسيتم تحويله
إذا كان منتصف (UTFSTR ، حفر ، 1) = ٪ ثم
"نص الترميز UTF8 أكبر من 8 ، ثم يتم تحويله إلى أحرف صينية
إذا كان LEN (UTFSTR)> = DIG+8 ثم
GBSTR = GBSTR و Invchinese (Mid (UTFSTR ، DIG ، 9))
حفر = حفر+8
آخر
GBSTR = GBSTR & MID (UTFSTR ، DIG ، 1)
إنهاء إذا
آخر
GBSTR = GBSTR & MID (UTFSTR ، DIG ، 1)
إنهاء إذا
التالي
UTF2GB = GBSTR
وظيفة نهاية
سيتم تحويل نص الترميز UTF8 إلى أحرف صينية
وظيفة مقنعة (x)
أ = انقسام (منتصف (x ، 2) ، ٪)
أنا = 0
J = 0
لأني = 0 إلى Ubound (أ)
A (i) = C16TO2 (A (I))
التالي
لأني = 0 إلى Ubound (أ) -1
الحفريات = instr (a (i) ، 0)
Unicode =
لـ J = 1 إلى Digs-1
إذا J = 1 ثم
a (i) = right (a (i) ، len (a (i)) -digs)
Unicode = Unicode & A (i)
آخر
i = i+1
a (i) = right (a (i) ، len (a (i))-2)
Unicode = Unicode & A (i)
إنهاء إذا
التالي
إذا كان LEN (C2TO16 (Unicode)) = 4
Convchinese = Convchinese & CHRW (Int (& H & C2TO16 (Unicode))
آخر
Convchinese = Invchinese & CHR (int (& H & C2TO16 (Unicode))
إنهاء إذا
التالي
وظيفة نهاية
"رمز ثنائي يتحول إلى رمز سداسي عشري
الدالة C2TO16 (X)
أنا = 1
لأني = 1 إلى Len (x) الخطوة 4
C2TO16 = C2TO16 & HEX (C2TO10 (MID (X ، I ، 4))))
التالي
وظيفة نهاية
يحول الرمز الثنائي إلى رمز عشري
الدالة C2TO10 (x)
C2TO10 = 0
إذا كان x = 0 ثم الخروج وظيفة
أنا = 0
لأني = 0 إلى len (x) -1
إذا كان منتصف (x ، len (x) -i ، 1) = 1 ثم c2to10 = c2to10+2^(i)
التالي
وظيفة نهاية
يتم تحويل رمز الكتاب المقدس إلى رمز ثنائي
الدالة C16TO2 (X)
أنا = 0
ل I = 1 إلى Len (Trim (x))
tempster = c10to2 (cint (int (& h & mid (x ، i ، 1))))
افعل بينما لين (Tempstr) <4
tempstr = 0 و tempstr
حلقة
C16TO2 = C16TO2 و TEMPSTR
التالي
وظيفة نهاية
"رمز الأعلى يتحول إلى رمز ثنائي
الدالة C10TO2 (x)
mySign = SGN (x)
x = ABS (x)
الحفريات = 1
يفعل
إذا كان x <2^يحفر ثم
الخروج تفعل
آخر
الحفريات = الحفريات+1
إنهاء إذا
حلقة
tempnum = x
أنا = 0
لأني = الحفريات إلى 1 الخطوة 1
إذا tempnum> = 2^(I-1) ثم
tempnum = tempnum-2^(I-1)
C10TO2 = C10TO2 و 1
آخر
C10TO2 = C10TO2 و 0
إنهاء إذا
التالي
إذا mySign = -1 ثم C10TO2 = -& C10TO2
وظيفة نهاية
في صفحة UTF-8 العادية ، يمكننا استخدامها مباشرة:
استجابة. write UTF2GB (٪ E6 ٪ B1 ٪ 89 ٪ E5 ٪ AD ٪ 97)
هذا هو: UTF2GB (٪ E6 ٪ B1 ٪ 89 ٪ E5 ٪ AD ٪ 97) = الأحرف الصينية
ولكن إذا حصلت صفحة UTF8 الحالية على ترميز GB (مثل ٪ BA ٪ BA ٪ D7 ٪ D6) ، كيف يمكننا تحويله إلى أحرف صينية؟ في هذا الوقت ، سيتم استخدام وظيفة فك تشفير URLDECODE (ENSTR) أعلاه ، ولكن لا يمكن استخدامها مباشرة.
<٪
session.codepage = 936 'التحويل القسري إلى تحت GB2312
Dim Mykey: mykey = urldecode (٪ ba ٪ ba ٪ d7 ٪ d6)
session.codepage = 65001 'استعد الصفحة مرة أخرى إلى ترميز UTF-8 مرة أخرى
الرد. write (mykey)
٪>
في هذا الوقت ، حصلت على شخصيات صينية. ماذا عن ، بسيط ، تذكر اتباع هذا الموقع في المرة القادمة في المسافة.