ASP считывает код функции, закодированный Request.QueryString. Друзья, изучающие asp, могут обратиться к нему. 1. Поддержка параметра чисто китайских иероглифов?a=山老熊
2. Поддержка параметра кодировки gb2312 Urlencode: ?a=%C9%EE%C9%BD%C0%CF%D0%DC
3. Поддержка параметра кодировки Urlencode UTF-8: ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Скопируйте код кода следующим образом:
<%@LANGUAGE=КОДОВАЯ СТРАНИЦА VBSCRIPT=65001%>
<%
Опция явная
Конст YXCMS_CHARSET = UTF-8
Конст YXCMS_CODEPAGE = 65001
Response.CharSet = UTF-8
Сеанс.Кодовая страница = 65001
'Тестовый URL
'?n1=Старый медведь в глубоких горах&n2=%C9%EE%C9%BD%C0%CF%D0%DC&n3=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86 %8А
'Старый медведь в горах
'ГБК: %C9%EE%C9%BD%C0%CF%D0%DC
'UTF-8: %E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A
Тусклый URI, ключ
Установить URI = новый Cls_URI
'Вывод всех тестов параметров
Для каждого ключа в URI.QueryString
Response.Write <span style='color:red'> & key & : </span> & URI.Get(key) & <hr/>
Следующий
'Получить одно значение
'URI.Get(имя)
'---------------------------------------------
'Кодировка ASP UTF-8 заменяет кодировку GBK UTF-8.
'Автор: Старый Медведь Глубокой Горы QQ:81090
'---------------------------------------------
Класс Cls_URI
Частный o_item,o_regx
Частный url_query
Частный подкласс_инициализировать
Установите o_item = CreateObject(Scripting.Dictionary)
o_item.CompareMode = 1
Установите o_regx = Новое регулярное выражение
o_regx.Pattern = ^(?:[/x00-/x7f]|[/xfc-/xff][/x80-/xbf]{5}|[/xf8-/xfb][/x80-/xbf]{4}|[/ хф 0-/xf7][/x80-/xbf]{3}|[/xe0-/xef][/x80-/xbf]{2}|[/xc0-/xdf][/x80-/xbf])+ $
Сеанс.Кодовая страница = 936
url_query = Request.ServerVariables(QUERY_STRING)
Сеанс.Кодовая страница = 65001
'Сгенерировать смоделированное значение QueryString на основе строки QUERY_STRING
Dim i,a,b,c,n,v
a = Split(url_query,&) : c = UBound(a)
Для i = 0 К с
b = Разделить(a(i),=,2)
n = Обрезать(b(0) & )
Если UBound(b) < 1 Тогда
v =
Еще
v = б(1)
Если InStr(v,%) > 0, то v = URLDecode(v)
Конец, если
Если н <> Тогда
o_item(n) = v
Конец, если
Следующий
Установить o_regx = Ничего
Конец субтитра
Частный подкласс_Terminate
Установить o_item = Ничего
Конец субтитра
'Имитировать Request.QueryString
Открытая функция QueryString()
Установите QueryString = o_item
Конечная функция
'Имитировать Request.QueryString(n)
Открытая функция [GET](n)
Если o_item.Exists(n) Тогда
[GET] = o_item.Item(n)
Еще
[ПОЛУЧИТЬ] =
Конец, если
Конечная функция
'Формат кодирования
Частная функция URLDecode(ByVal s)
Тусклый sm,cs,r,o_regex
Если Trim(s & ) = Тогда
URLDecode = s: Выход из функции
Конец, если
s = unescape(s)
Если o_regx.Test(s) Тогда
cs=UTF-8
Еще
cs=ГБК
Конец, если
Установите sm = CreateObject(Adodb.Stream)
С см
.Тип = 2
.Режим = 3
.Открыть
.CharSet = ISO-8859-1
.WriteText с
.Позиция = 0
.CharSet = cs
URLDecode = .ReadText(-1)
.Закрывать
Конец с
Установить sm = Ничего
Конечная функция
Конечный класс
%>