وثيقة مرجعية: http://www.linuxforum.net/books/utf-8-unicode.html
الرمز كما يلي:
===========================================
نسخة الكود كما يلي:
<scriptLanguage = "vbscript">
'http://www.linuxforum.net/books/utf-8-unicode.html
publicfunctionUtf8encodechar (Z)
DIMC: C = ASCW (Z) 'احصل على ترميز Unicode
IFC> 0ANDC <256then'ASC ترميز إعادة الترميز مباشرة
UTF8ENCODECHAR = Z.
exitfunction
Endif
IFC <0thenc = C+& H10000 & 'VBScript's Integer Overflow ، بالإضافة إلى
DIMK: k = clng (c) 'احتياطي رمزًا ، واستخدمه بعد الحكم
dimb ()
ديمي: أنا = 0
Whilec> & H0 & 'حفظ الترميز في مجموعات 6 بت وحفظ المجموعة في صفيف بايت ب
redimpreserveb (i)
B (i) = cbyte (cand & h3f &)
C = C/& H40 &
i = i+1
ويند
ifubound (b)> 0then'If هناك أكثر من مجموعة واحدة 6 بت مفصولة ، باستثناء أعلى مجموعة ، تتم إضافة جميع Binary 10000000.
fori = 0toubound (b) -1
B (i) = b (i)+& h80
التالي
Endif
i = ubound (b) 'بادئة أعلى مجموعة وفقًا لنطاق ترميز Unicode للشخصية
ifk <= clng (& h7f &) ثم
B (i) = b (i) +0
elseifk <= clng (& h7ff &) ثم
B (i) = b (i)+& hc0
elseifk <= clng (& hffff &) ثم
B (i) = b (i)+& HE0
elseifk <= clng (& h1fffff &) ثم
B (i) = b (i)+& hf0
elseifk <= clng (& h3fffff &) ثم
B (i) = b (i)+& hf8
آخر
B (i) = b (i)+& hfc
Endif
utf8encodechar = ""
fori = ubound (b) to0step-1 'يحول الحزمة إلى ترميز عنوان URL
UTF8ENCODECHAR = UTF8ENCODECHAR & "٪" & Right ("00" & Hex (B (I)) ، 2)
التالي
reaseb
الوظيفية
publicfunctionUtf8encodestring (s)
Dimi ، L ، C: L = Len (s)
fori = 1tol
UTF8ENCODESTRING = UTF8ENCDESTRING & UTF8ENCODECHAR (MID (S ، I ، 1))
التالي
الوظيفية
msgboxutf8encodestring ("听听听听听听")
</script>
طريقة الاختبار:
http://www.google.com/search؟hl=zh-cn&newwindow=1&rls=gglg٪2Cgglg٪3A2006-15٪2Cgglg٪3azh-Cn&Q=your Code
نسخة الكود كما يلي:
FunctionRevertUtf8 (szinput)
{
varx ، wch ، wch1 ، wch2 ، uch = "" ، szret = "" ؛
لـ (x = 0 ؛ x <szinput.length ؛ x ++)
{
إذا (szinput.charat (x) == "٪")
{
wch = parseint (szinput.charat (++ x)+szinput.charat (++ x) ، 16) ؛
if (! wch) {break ؛}
إذا (! (WCH & 0x80))
{
WCH = WCH ؛
}
elseif (! (WCH & 0x20))
{
x ++ ؛
WCH1 = parseint (szinput.charat (++ x)+szinput.charat (++ x) ، 16) ؛