Нужно ли использовать кодировку URL атрибута href элемента привязки? - PullRequest
4 голосов
/ 01 ноября 2011

Я проверил HTML-код своей веб-страницы и проверил его, используя дополнение HTML Validator к Firefox , и увидел, что он жалуется на атрибут href ссылки, которая содержит символы Юникода,URL не закодированы.

Текущий URL:

<a href='/اخبار'>Persian News</a>

Однако, валидатор хочет, чтобы он был:

<a href='/%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1'>Persian News</>

Я проверял эту ссылку впочти в каждом браузере (даже до IE6).Работает просто отлично.Итак, в чем здесь проблема?Почему я должен кодировать это?Валидатор устарел?С какой проблемой я могу столкнуться, если не URL-кодировка символов Unicode внутри атрибута href тега <a>?

Ответы [ 4 ]

4 голосов
/ 01 ноября 2011

URL-адреса могут отправляться только через Интернет с использованием набора символов ASCII.

Обычно браузер выполняет кодировку за вас.

3 голосов
/ 01 ноября 2011

Браузеры, которые не поддерживают этот язык (кодировку), не смогут открыть URL. Вы должны закодировать его, чтобы убедиться, что каждый может использовать все функции вашего сайта.

1 голос
/ 10 февраля 2013

Это зависит от того, какому стандарту вы хотите, чтобы ваша страница соответствовала:

  • Для (X) HTML5 допустимы URI, содержащие не-ASCII-символы (т. Е. IRI), еслипоскольку ваш документ закодирован в UTF-8 или UTF-16 и заголовки MIME отправляются соответствующим образом.

  • В документах HTML4 / XHTML1 все символы не-ASCII всегда должны быть экранированы.

См. Также ответ на Допустимы ли IRI в качестве значений атрибутов HTML? .

1 голос
/ 01 ноября 2011

Да, я проверил это с <meta http-equiv="Content-type" content="text/html; charset=windows-1251"/> что значит для русских а ссылку просто перевернуть <a href="/?????">Persian News</a> поэтому вам нужна правильная кодировка и кодировка, чтобы она работала нормально.

...