Documento de referência: http://www.linuxforum.net/books/utf-8-unicode.html
O código é o seguinte:
===========================================
A cópia do código é a seguinte:
<scriptLanguage = "vBScript">
'http://www.linuxforum.net/books/utf-8-unicode.html
PublicFunctionUtf8EncodeChar (z)
DIMC: C = ASCW (z) 'Obtenha a codificação Unicode
ifc> 0andc <256THEN'ASC A codificação retorna diretamente
Utf8EncodeChar = z
Saída de saída
Endif
Ifc <0Thenc = C+& H10000 & 'VBScript Integer Overflow, mais
Dimk: k = clng (c) 'faça backup de um código e use -o após o julgamento
Dimb ()
Dimi: i = 0
Whilec> & h0 & 'salve a codificação em grupos de 6 bits e salve o grupo em Byte Matriz B
RedimPreserveB (i)
b (i) = cbyte (cand & h3f &)
c = c/& h40 &
i = i+1
Wend
IFUDOUND (B)> 0 então, se houver mais de um grupo de 6 bits separado, exceto o grupo mais alto, todos os 10000000 binários são adicionados.
Fori = 0Toubound (b) -1
b (i) = b (i)+& h80
Próximo
Endif
i = ubound (b) 'prefixo o grupo mais alto de acordo com a faixa de codificação do Unicode do personagem
Ifk <= clng (& h7f &) então
b (i) = b (i) +0
Elseifk <= clng (& h7ff &) então
b (i) = b (i)+& hc0
Elseifk <= clng (& hffff &) então
b (i) = b (i)+e he0
Elseifk <= clng (& h1fffff &) então
b (i) = b (i)+& hf0
Elseifk <= clng (& h3fffff &) então
b (i) = b (i)+& hf8
Outro
b (i) = b (i)+e hfc
Endif
Utf8Encodechar = ""
Fori = ubound (b) to0Step-1 'converte o pacote em codificação de URL
Utf8Encodechar = utf8Encodechar & "%" & Right ("00" & Hex (b (i)), 2)
Próximo
EASEB
Função final
PublicFunctionUtf8Encodestring (s)
Dimi, l, c: l = len (s)
Fori = 1tol
Utf8Encodestring = utf8Encodestring & utf8Encodechar (MID (S, i, 1))
Próximo
Função final
MsgBoxutf8Encodestring ("听听听听听听")
</script>
Método de teste:
http://www.google.com/search?hl=zh-cn&newwindow=1&rls=gglg%2cgglg%3a2006-15%2cgglg%3azh-cn&q=ouour code
A cópia do código é a seguinte:
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 & 0x80))
{
WCH = WCH;
}
elseif (! (WCH & 0x20))
{
x ++;
wch1 = parseint (szinput.charat (++ x)+szinput.charat (++ x), 16);