2009-09-24 5 views
4

/BG/продукть/81-кожно-тонировка-маскаNon английских символов в Сотовой связи URL

Как получить это шоу как и в пути браузера URL-адрес, а не

/BG /% D0% BF % d1% 80% d0% быть% d0% b4% d1% 83% d0% BA% d1% 82% d0% b8/81-кожно-тонировка-маски

  1. HttpUtility.UrlEncode ("/ BG/продукти/81-skin-toning-mask ") - тот же результат (нечитаемые символы для продукти)
  2. HttpUtility.UrlEncodeUnicode ("/bg/продукти/81-skin-toning-mask ") - даже не делают ссылку правильно (странно)
  3. HttpUtility.UrlPathEncode ("/ BG/продукти/81-кожно-тонировка-маска") - тот же результат (нечитаемые символы для продукти части)

ответ

3
http://www.example.com/bg/продукти/81-skin-toning-mask 

является IRI.

http://www.example.com/bg/%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/81-skin-toning-mask 

Правильно URI представление выше IRI.

Оба действительны и будут работать одинаково хорошо, как значение <a href> в современных браузерах.

Как правило, для использования версии URI обычно предпочитают старые браузеры, однако при этом IE (странно) отображает версию URI в адресной строке вместо хорошей версии IRI, хотя это тот же адрес и IE отправляет тот же запрос, чтобы получить его. Кроме того, некоторые символы IE никогда не будут отображаться незакодированными (хотя русский работает для меня).

Так что если вы заботитесь о том, чтобы ваша адресная строка выглядела красиво в IE, а не поддерживала старые браузеры до IRI, просто напишите строку, отличную от ASCII, прямо на странице, только выйдя из внеполосных символов ASCII. Ваши страницы должны обслуживаться как UTF-8, чтобы это надежно работало над различными настройками IE, но на самом деле сегодня все, что вы делаете, должно быть UTF-8 в любом случае.

0

Определение допустимых символов в Uniform Resource Locator (URL) в RFC 1738 не предполагает использования нелатинских (не US-ASCII) наборов символов.

Извините, это ужасно шовинистично, но подумайте, как сложно было бы поддерживать все алфавиты !?

+0

Не очень сложно, если бы он был спроектирован таким образом с самого начала, и на миллионах серверов не было установлено тысяч разных программ, которые зависят от стандарта, не поддерживающего Unicode. –

+0

Символы, отличные от ASCII, отлично подходят для URI. Вам просто нужно UTF-8, а затем URL-кодировать их. Форма, в которой вы видите сами символы, называется IRI и поддерживается всеми современными браузерами. – bobince

+1

Итак, живу в англоговорящей стране, я не подвергался этим. Но когда я перейду к ссылке, предоставленной Дэниелом, и нажмите на одну из ссылок там, я могу увидеть кириллицу в URL-адресе. ** Никогда не видел этого раньше! ** Проклятие несчастного случая моего рождения. – pavium

Смежные вопросы