Referenzdokument: http://www.linuxforum.net/books/utf-8-unicode.html
Der Code ist wie folgt:
===========================================
Die Codekopie lautet wie folgt:
<scriptuanguage = "vbscript">
'http://www.linuxforum.net/books/utf-8-unicode.html
PublicFunctionutf8encodechar (z)
DIMC: C = ASCW (Z) 'Get Unicode -Codierung
IFC> 0AndC <256Then'asc -Codierung kehrt direkt zurück
Utf8encodechar = z
Ausgangsfunktion
Endif
IFC <0THENC = C+& H10000 & 'VBSScript's Ganzzahlüberlauf plus plus
DIMK: k = clng (c) 'sichern Sie einen Code und verwenden Sie ihn nach dem Urteil
Dimb ()
Dimi: i = 0
Whilec> & h0 & 'Speichern Sie die Codierung in 6-Bit-Gruppen und speichern Sie die Gruppe in Byte-Array B
REMPRESERVEB (I)
B (i) = CByte (Cand & H3f &)
C = C/& H40 &
i = i+1
Wend
IFUBOUND (B)> 0Then'Wenn es gibt mehr als eine 6-Bit-Gruppe, mit Ausnahme der höchsten Gruppe werden alle binären 10000000 hinzugefügt.
Fei = 0Toubund (b) -1
B (i) = b (i)+& h80
Nächste
Endif
i = Ubound (b) 'Präfix die höchste Gruppe gemäß dem Unicode -Codierungsbereich des Zeichens
Ifk <= clng (& h7f &) dann
B (i) = b (i) +0
Elseifk <= clng (& h7ff &) dann
B (i) = b (i)+& hc0
Elseifk <= clng (& hffff &) dann
B (i) = b (i)+& hE0
Elseifk <= clng (& h1fffff &) dann
B (i) = b (i)+& hf0
Elseifk <= clng (& h3fffff &) dann
B (i) = b (i)+& hf8
Anders
B (i) = b (i)+& hfc
Endif
Utf8encodechar = ""
Fei = ubound (b) to0Step-1 'Umwandelt das Paket in URL-Codierung
Utf8encodechar = utf8encodechar & "%" & rechts ("00" & hex (b (i)), 2)
Nächste
Eraseb
Endfunktion
PublicFunctionutf8encodestrings (s)
Dimi, l, c: l = len (s)
Fei = 1tol
Utf8encodestring = Utf8encodestring & utf8encodechar (Mid (s, i, 1))
Nächste
Endfunktion
Msgboxutf8encodestring ("听听听听听听")
</script>
Testmethode:
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=GGLG%2CGGLG%3A2006-15%2CGHGLG%3AZH-CN&q=your Code
Die Codekopie lautet wie folgt:
FunktionRevertUtf8 (Szinput)
{
Varx, WCH, WCH1, WCH2, UCH = "", Szret = "";
für (x = 0; x <szinput.length; x ++)
{
if (szinput.charat (x) == "%")
{
wch = parseInt (szinput.charat (++ x)+szinput.charat (++ x), 16);
if (! wch) {break;}
if (! (WCH & 0x80))
{
wch = wch;
}
elseif (! (WCH & 0x20))
{
x ++;
wch1 = parseInt (szinput.charat (++ x)+szinput.charat (++ x), 16);