Documento de referencia: http://www.linuxforum.net/books/utf-8-unicode.html
El código es el siguiente:
===========================================
La copia del código es la siguiente:
<scriptLanguage = "vBscript">
'http://www.linuxforum.net/books/utf-8-unicode.html
PublicFunctionUtf8CodeChar (z)
Dimc: c = ascw (z) 'obtener codificación unicode
ifc> 0andc <256then'asc codificación regresa directamente
UTF8CODECHAR = Z
Extinción
Endif
Ifc <0thenc = C+& H10000 & 'VBScript's Integer Overflow, más
Dimk: k = clng (c) 'respalda un código y úselo después del juicio
Dimb ()
Dimi: i = 0
Mientras que> & H0 & 'guarde la codificación en grupos de 6 bits y guarda el grupo en la matriz de bytes B
Redimpreserveb (i)
b (i) = cbyte (CAND & H3F &)
C = C/& H40 y
i = i+1
Encaminarse a
Ifubound (b)> 0, si hay más de un grupo de 6 bits separado, excepto para el grupo más alto, se agregan todos los 10000000 binarios.
Fori = 0toUbound (b) -1
b (i) = b (i)+y H80
Próximo
Endif
i = Ubound (b) 'prefijo el grupo más alto de acuerdo con el rango de codificación unicode del personaje
Ifk <= clng (& h7f &) entonces
b (i) = b (i) +0
Elseifk <= clng (& h7ff &) entonces
b (i) = b (i)+y HC0
Elseifk <= clng (& hffff &) entonces
b (i) = b (i)+y he0
Elseifk <= clng (& h1fffff &) entonces
b (i) = b (i)+y Hf0
Elseifk <= clng (& h3fffff &) entonces
b (i) = b (i)+y HF8
Demás
b (i) = b (i)+y HFC
Endif
Utf8enCodeChar = ""
Fori = ubound (b) to0step-1 'convierte el paquete en codificación de URL
UTF8CODECHAR = UTF8CODECHAR & "%" & DERECHO ("00" & HEX (B (i)), 2)
Próximo
Ebrey
Función final
PublicFunctionUtf8EncodeString (s)
Dimi, L, C: L = Len (S)
Fori = 1Tol
UTF8EncodeString = Utf8EncodeString & Utf8EncodeChar (Mid (S, I, 1))
Próximo
Función final
MsgboxUtf8EncodeString ("听听听听听听")
</script>
Método de prueba:
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=gglg%2cgglg%3a2006-15%2cgglg%3azh-cn&q=your code
La copia del código es la siguiente:
functionRevertutf8 (szinput)
{
Varx, WCH, WCH1, WCH2, UCH = "", szret = "";
para (x = 0; x <szinput.length; x ++)
{
if (szinput.charat (x) == "%")
{
wch = parseint (szinput.charat (++ x)+szinput.charat (++ x), 16);
if (! wch) {break;}
if (! (wch y 0x80))
{
WCH = WCH;
}
Elseif (! (WCH y 0x20))
{
x ++;
wch1 = parseint (szinput.charat (++ x)+szinput.charat (++ x), 16);