Я столкнулся с проблемой, когда я сделал небольшую функцию сегодня. Чтобы получить его снова, но это, несомненно, повысит эффективность выполнения кода.
Например, например, «китайские иероглифы»
Кодирование в соответствии с UTF-8:%E6%B1%89%E5%AD%97
Кодирование в рамках GB2312:%BA%BA%D7%D6 D6
И моя веб-страница в настоящее время закодирована в UTF-8, так как преобразовать эти чистые строки кодирования в китайские символы?
Прежде всего, следующая функция должна быть включена в мою страницу:
Функция urldecode (enstr)
Dim Dests, Strspecial
Dim C, I, V
Destry =
strspecial =!#$%& '()*+,.
Для i = 1 к Лену (ENSTR)
C = середина (enstr, i, 1)
Если c =%, то тогда
v = eval (& h+mid (enstr, i+1,2))
Если instr (strspecial, chr (v))> 0 тогда
Dests = destr & chr (v)
I = i+2
Еще
V = eval (& h+ mid (enstr, i+ 1,2)+ mid (enstr, i+ 4,2))
Dests = destr & chr (v)
I = i+5
Конец, если
Еще
Если c =+ то
Dests = Dests &
Еще
Destr = destr & c
Конец, если
Конец, если
Следующий
Urldecode = destr
Конечная функция
Приведенная выше функция представляет собой функцию декодирования URL.
Функция UTF2GB (UTFSTR)
Для Dig = 1 к Len (UTFSTR)
'Если текст кодирования UTF8 начнется с%, он будет преобразован
Если середина (utfstr, dig, 1) =%, тогда
'UTF8, кодирующий текст, больше 8, а затем преобразован в китайские иероглифы
Если len (utfstr)> = Dig+8, то тогда
GBSTR = GBSTR & CROVCHINESE (MID (UTFSTR, DIG, 9))
Dig = Dig+8
Еще
GBSTR = GBSTR & MID (UTFSTR, DIG, 1)
Конец, если
Еще
GBSTR = GBSTR & MID (UTFSTR, DIG, 1)
Конец, если
Следующий
UTF2GB = GBSTR
Конечная функция
'Text Concoding UTF8 будет преобразован в китайские иероглифы
Функция Convchinese (x)
A = Split (Mid (x, 2),%)
i = 0
j = 0
Для i = 0 до ubound (a)
A (i) = c16to2 (a (i))
Следующий
Для i = 0 до ubound (a) -1
Digs = instr (a (i), 0)
Unicode =
Для j = 1 до раскопок-1
Если j = 1, то тогда
A (i) = справа (a (i), len (a (i)) -digs)
Unicode = Unicode & A (i)
Еще
I = i+1
A (i) = right (a (i), len (a (i))-2)
Unicode = Unicode & A (i)
Конец, если
Следующий
Если len (c2to16 (unicode)) = 4, что
Convchinese = convchinese & chrw (int (& h & c2to16 (Unicode))
Еще
Convchinese = convchinese & chr (int (& h & c2to16 (Unicode))
Конец, если
Следующий
Конечная функция
'Бинарный код конвертируется в шестнадцатеричный код
Функция C2TO16 (x)
i = 1
Для i = 1 до Len (x) Шаг 4
C2TO16 = C2TO16 & HEX (C2TO10 (MID (X, I, 4)))))
Следующий
Конечная функция
«Бинарный код преобразуется в десятичный код
Функция C2TO10 (x)
C2TO10 = 0
Если x = 0, то функция выхода
i = 0
Для i = 0 до len (x) -1
Если середина (x, len (x) -i, 1) = 1, то c2to10 = c2to10+2^(i)
Следующий
Конечная функция
Код Писания преобразуется в двоичный код
Функция C16TO2 (x)
i = 0
Для i = 1 к Len (Trim (x))
tempstr = c10to2 (cint (int (& h & mid (x, i, 1)))))
Делать, пока Лен (темпстр) <4
Tempstr = 0 & tempstr
Петля
C16to2 = c16to2 & tempstr
Следующий
Конечная функция
'Top Code конвертируется в двоичный код
Функция C10TO2 (x)
mysign = sgn (x)
x = ABS (x)
Раскопки = 1
ДЕЛАТЬ
Если x <2^раскопает, тогда
Выход DO
Еще
Digs = Digs+1
Конец, если
Петля
Tempnum = x
i = 0
Для i = раскопать до 1 шага-1
Если tempnum> = 2^(i-1), тогда
tempnum = tempnum-2^(i-1)
C10to2 = c10to2 и 1
Еще
C10to2 = c10to2 и 0
Конец, если
Следующий
Если mysign = -1, то c10to2 = -& c10to2
Конечная функция
На обычной странице UTF-8 мы можем использовать его напрямую:
Ответ. Write utf2gb (%E6%B1%89%E5%AD%97)
То есть: UTF2GB (%E6%B1%89%E5%AD%97) = китайские иероглики
Но если текущая страница UTF8 получает кодирование GB (например,%BA%BA%D7%D6), как мы можем преобразовать его в китайские иероглифы? В настоящее время выше, функция декодирования UrldeCode (ENSTR) будет использоваться выше, но она не может быть использована напрямую, особое внимание следует уделять временному изменению режима кодирования текущей страницы.
<%
Session.codepage = 936 'Принудительное преобразование в gb2312
Dim MyKey: myKey = urldeCode (%ba%ba%d7%d6)
Session.codepage = 65001 'обратно страницу обратно в UTF-8 кодирование снова
Response.write (mykey)
%>
В настоящее время я получил китайские иероглифы. Как насчет того, просто не забудьте следовать этому сайту в следующий раз в расстоянии.