У меня есть фрагмент кода, который перенаправляет на страницу, используя server.urlEncode (fields)
, когда капча введена неправильно.Код выглядит так:
sRedirectTo = "page.asp" _
& "?action=vcerr" _
& "&at=" & server.urlEncode(sAdType) _
& "&fn=" & server.urlEncode(sFirstname) _
& "&mn=" & server.urlEncode(sMiddleName) _
& "&ln=" & server.urlEncode(sLastName) _
& "&sx=" & server.urlEncode(sSex) _
& "&pr=" & server.urlEncode(sProvince) _
& "&cn=" & server.urlEncode(sCountry) _
& "&cy=" & server.urlEncode(sCity) _
& "&md=" & server.urlEncode(dMomentDate) _
& "&ag=" & server.urlEncode(iAgree) _
& "&chn=" & server.urlEncode(sCharityName) _
& "&chu=" & server.urlEncode(sCharityUrl) _
& "&city=" & server.urlEncode(sCityID) _
& "&key=" & server.urlEncode(sKeywords)
Однако, если запись cy
предназначена для города, подобного Сен-Жерому, она не может кодировать акцент.URL в панели браузера выглядит следующим образом: page.asp? Action = vcerr [...] & cy = SAINT-JÉRÔME & od = 10% 2F05% 2 [...]
Затем текст извлекается с помощью QueryString("cy)
и отображается на странице, что приводит к неправильному отображению символов.
Есть что-то, что я здесь упускаю?Я не уверен, почему server.urlEncode
не работает.
РЕДАКТИРОВАТЬ:
Я проверил переменную sRedirectTo
во время отладки, кажется, что urlEncode
работает на символыпоэтому переключение происходит между Response.redirect
и QueryString
.Возможно ли, что редирект убрал кодировку для специальных символов?Также странно то, что urlencoding, выполненный для других переменных, остается неизменным.