Справочный документ: http://www.linuxforum.net/books/utf-8-ulinicode.html
Код выглядит следующим образом:
===========================================
Кода -копия выглядит следующим образом:
<scriptlanguage = "vbscript">
'http://www.linuxforum.net/books/utf-8-ulinicode.html
PublicfunctionUtf8encodechar (z)
DIMC: C = ASCW (Z) 'Get Unicode Кодирование
IFC> 0ANDC <256THEN'ASC Кодирование непосредственно возвращает
Utf8encodechar = z
Выходная функция
Эндиф
IFC <0THENC = C+& H10000 & 'VBScript Integer Overflow, плюс
Dimk: k = clng (c) 'резервное копирование кода и используйте его после решения
Dimb ()
DiMi: i = 0
В то время как> & H0 & 'Сохраните кодирование в 6-битные группы и сохраните группу в байт массив B
Redimpreserveb (i)
b (i) = cbyte (cand & h3f &)
C = C/& H40 &
i = i+1
Венд
Ifubound (b)> 0Then'if есть более одной 6-битной группы, за исключением самой высокой группы, добавляются все бинарные 10000000.
Fori = 0toubound (b) -1
b (i) = b (i)+& h80
Следующий
Эндиф
i = Ubound (b) префикс самая высокая группа в соответствии с диапазоном кодирования Unicode персонажа
Ifk <= clng (& h7f &) then
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
Эндиф
Utf8encodechar = ""
Fori = ubound (b) to0step-1 'преобразует пакет в кодирование URL
Utf8encodechar = utf8encodechar & "%" & right ("00" & hex (b (i)), 2)
Следующий
Eraseb
Конечная функция
PublicfunctionUtf8encodestring (ы)
DiMi, L, C: L = Len (S)
Fori = 1tol
Utf8encodestring = utf8encodestring & 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 = "";
for (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);