У моего сайта ColdFusion (MX7 на IIS 6) есть функция поиска, которая добавляет поисковый запрос к URL-адресу, например. http://www.example.com/search.cfm/searchterm
.Проблема с использованием юникода в URL-адресах cgi.PATH_INFO в ColdFusion
Проблема, с которой я столкнулся, - это многоязычный сайт, поэтому поисковый запрос может быть на другом языке, например. القاهرة
, приводящий к поисковому URL-адресу, например http://www.example.com/search.cfm/القاهرة
Проблема заключается в том, когда я пришел, чтобы получить поисковый запрос из URL-адреса. Я использую cgi.PATH_INFO
, чтобы получить путь к поисковой странице и поисковому запросу и извлечь искомый термин из этого, например. /search.cfm/searchterm
однако, когда символы Юникода используются в поиске, они преобразуются в вопросительные знаки, например. /search.cfm/??????
.
Они представляют собой фактические вопросительные знаки, а не браузер, не умеющий форматировать символы юникода, или их искажают на выходе.
Я не могу найти информацию о том, поддерживает ли ColdFusion код юникода в URL-адресе или как я могу решить эту проблему и получить какой-либо URL-адрес - есть ли у кого-нибудь идеи?
Приветствия,
Том
Редактировать: Дальнейшее исследование привело меня к мысли, проблема может связана с IIS, а не ColdFusion, но мой первоначальный запрос до сих пор стоит.
Далее редактировать
Результат GetPageContext().GetRequest().GetRequestUrl().ToString()
является http://www.example.com/search.cfm/searchterm/?????
поэтому возникает вопрос идет довольно глубоко.
Вы можете использовать параметр реестра FastCGIUtf8ServerVariables, чтобы Path_info и другие переменные были декодированы как UTF-8. –