urlrewriting.net не принимает строку запроса на арабском языке

StackOverflow https://stackoverflow.com/questions/586626

  •  06-09-2019
  •  | 
  •  

Вопрос

я схожу с ума, я перепробовал все, urlencode, html-кодирование, но urlrewriting.net читает арабскую строку запроса как ??персонажи

полностью ценю помощь

Это было полезно?

Решение 3

После долгих утомительных испытаний мой совет всем, кто использует перезапись URL-адресов с IIS 7 в интегрированном режиме, перестаньте тратить свое время и либо используйте маршрутизацию MVC, либо забудьте об арабских строках в URL-адресе.

Другие советы

Если у вас установлен .NET 3.5 SP1, я бы рекомендовал вам переключиться на System.Web.Routing вместо библиотеки UrlRewriting.net.Недавно я перешёл с UrlRewriting.net на System.Web.Routing Я и маршрутизация намного лучше продуманы и лучше интегрированы с конвейером ASP.NET.

Если у вас есть возможность переключиться, я бы порекомендовал это.Если нет, опубликуйте файл конфигурации UrlRewriting.net, чтобы мы могли настроить регулярные выражения, которые, по всей видимости, не работают.Пожалуйста, опубликуйте несколько примеров URI, которые тоже не работают.

Кроме того, какие значения определены в web.config раздел:

<system.web>
  <globalization requestEncoding="utf-8"
                 responseEncoding="utf-8"
                 fileEncoding="utf-8" />
</system.web>

Как и в приведенном выше примере, используйте UTF-8.Также обязательно закодируйте символы в URI как UTF-8.

Что происходит, когда вы запускаете приложение IIS 7 в «Классическом режиме» (может потребоваться установка, чтобы быть доступным вариантом)?

Попробуйте, это быстрее..и проблем без проблем.

"~/News/2008/10/10/Newsid/تجربة. ASPX", где газета является идентификатором вашей статьи.

Получите название из базы данных:'SELECT * из новостей, где id =' & newsiD Это намного быстрее, чем:"выберите * из новостей, где title='"& title &"'"

Кажется, я решил проблему, убедившись, что обе страницы, та, которая содержит ссылку, и та, которая анализирует строку запроса, имеют кодировку UTF-8.

Но теперь у меня есть еще одна проблема, которую Firefox отображает гипер -ссылку и ссылку в адресной панели правильно, но в IE6 и IE 7 это так

mysite/News/2008/10/10/%D8%AA%D8%AC%D8%B1%D8%A8%D8%A9.aspx

хотя IE 6 и 7 нормально анализируют ссылку, но это ужасно, какое решение, пожалуйста?

Обновлять:Человек, в котором вы не поверите, я нашел проблему, что это настолько странно, что в интегрированном режиме IIS 7 попытаться запустить свою страницу с Visual Studio Dev Server, и символы Unicode будут проанализированы просто отлично, но если вы запустите страницу с страницы IIS 7 это даст вам ????персонажи.

надеюсь, что кто-то затенит здесь немного света

вы можете использовать -> Server.UrlEncode(имяпродукта) в global.aspx или перед перезаписью используйте Server.UrlDecode(Request.QueryString["productName"]); в PageLoad

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top