В этой статье в основном представлены пользовательские функции URLEncode и URLDecode, реализованные в ASP, которые отличаются от функции server.urlencode, поставляемой с ASP. Друзья, нуждающиеся в этом, могут обратиться к ней.
Делая публикацию в Ajax, я обнаружил, что данные всегда искажались при получении их с сервера. Я просмотрел некоторые решения в Интернете и не смог разобраться. Из-за этого мой пост был в формате xml. искаженный код, XML-файл на стороне сервера не удалось проанализировать или возникла ошибка. Поэтому мы кодируем его перед отправкой, а затем декодируем на стороне сервера. Это решает проблему, но если данные большие, это, вероятно, повлияет на скорость.
Хотя запрос в ASP автоматически декодирует строку, закодированную в URL-адресе, Request.BinaryRead(Request.TotalBytes) не будет декодировать ее при получении данных публикации, поэтому ее необходимо декодировать.
Ниже приведена функция декодирования функции server.urlencode в ASP, которую я нашел.
Скопируйте код кода следующим образом:
Функция URLDecode(enStr)
dim deStr,strSpecial
дим c,i,v
деСтр=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
от i=1 до len(enStr)
c=Средний(enStr,i,1)
если c="%" тогда
v=eval("&h"+Mid(enStr,i+1,2))
если inStr(strSpecial,chr(v))>0, то
деСтр=деСтр&хр(в)
я=я+2
еще
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
я=я+5
конец, если
еще
если c="+" тогда
deStr=deStr&" "
еще
deStr=deStr&c
конец, если
конец, если
следующий
URLDecode=deStr
Конечная функция
Прилагается еще одна функция кодирования. Разница между этим и server.urlencode заключается в том, что server.urlencode преобразует такие теги, как html или xml, например:
Кодирование также будет выполнено, но функция ниже — нет. Я использую следующее для кодирования, а затем декодирования, потому что при использовании post я использую xml.
Скопируйте код кода следующим образом:
частная функция URLEncoding(vstrIn)
стрReturn = ""
Для i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
Если Abs(Asc(ThisChr)) < &HFF Тогда
стрReturn = стрReturn & ThisChr
Еще
внутреннийКод = Asc(ThisChr)
Если внутренний код < 0 Тогда
внутреннийКод = внутреннийКод + &H10000
Конец, если
Высота8 = (внутренний код и &HFF00)/&HFF
Low8 = внутренний код и &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
Конец, если
Следующий
URLEncoding = стрвозврат
Конечная функция