Document de référence: http://www.linuxforum.net/books/utf-8-unicode.html
Le code est le suivant:
===========================================
La copie de code est la suivante:
<criptLanguage = "vbscript">
'http://www.linuxforum.net/books/utf-8-unicode.html
PublicFonctionUtf8Encodechar (Z)
DIMC: C = ASCW (Z) 'Get Unicode Encoding
ifc> 0andc <256Then'asc Encoding revient directement
Utf8encodechar = z
Sortie
Endire
IFC <0THENC = C + & H10000 & 'VBScript's Integer Overflow, plus
Dimk: K = Clng (C) 'Sauvez un code et utilisez-le après le jugement
Dimb ()
Dimi: i = 0
Tandis que le codage> & h0 & 'enregistrer le codage en groupes 6 bits et enregistrer le groupe dans le tableau d'octets B
RedImpreserveB (i)
b (i) = cbyte (cand & h3f &)
c = c / & h40 &
i = i + 1
Se promener
IFUBOUND (B)> 0THEN'F Il y a plus d'un groupe 6 bits séparés, à l'exception du groupe le plus élevé, tous les 10000000 binaires sont ajoutés.
Fori = 0Toubound (b) -1
b (i) = b (i) + & h80
Suivant
Endire
i = ubound (b) 'préfixer le groupe le plus élevé selon la plage de codage Unicode du caractère
Ifk <= clng (& h7f &) alors
b (i) = b (i) +0
Elseifk <= clng (& h7ff &) alors
b (i) = b (i) + & hc0
Elseifk <= clng (& hffff &) alors
b (i) = b (i) + & he0
Elseifk <= clng (& h1fffff &) puis
b (i) = b (i) + & hf0
Elseifk <= clng (& h3fffff &) alors
b (i) = b (i) + & hf8
Autre
b (i) = b (i) + & hfc
Endire
Utf8encodechar = ""
Fori = ubound (b) to0step-1 'convertit le paquet en codage d'URL
Utf8encodechar = utf8encodechar & "%" & droite ("00" & hex (b (i)), 2)
Suivant
Effacer
Finition de fin
PublicFonctionUtf8Encodestring (s)
Dimi, l, c: l = len (s)
Fori = 1tol
Utf8encodestring = utf8encodestring & utf8encodechar (mid (s, i, 1))
Suivant
Finition de fin
Msgboxutf8encodestring ("听听听听听听")
</cript>
Méthode de test:
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=gglg%2cgglg%3a2006-15%2cgglg%3AZH-CN&q=your code
La copie de code est la suivante:
functionRevertf8 (szinput)
{
varx, wch, wch1, wch2, uch = "", szret = "";
pour (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);