2013-03-27 3 views
0

Я хочу, чтобы мои URL-адреса были максимально удобочитаемыми и красивыми. Я заметил, что даже пробел работает в URL. Скопируйте: http://en.wikipedia.org/wiki/Prince of Persia или http://en.wikipedia.org/wiki/سنڌي в адресную строку вашего боровщика, и он работает!Космические и нелатинские символы в URL-адресе

Эти работы тоже:

<a href='http://en.wikipedia.org/wiki/Prince of Persia'> Foo </a> 
<a href='http://en.wikipedia.org/wiki/سنڌي'> Bar </a> 

Насколько безопасно использует письмо Unicode за A-Z в URL-адресах? Мои URL-адреса просты без знака препинания, аналогичные ссылкам в Википедии.

Для меня не важно, чтобы оно было действительным или недействительным, я только хочу, чтобы он работал!

(на самом деле я собираюсь использовать + вместо «» и моя главная забота о тексте Unicode)

ли выше работает без проблем во всех распространенных браузерах?

+0

Он не будет работать последовательно, потому что он недействителен :) Браузеру не нужно его кодировать для вас AFAIK. Это похоже на недопустимый HTML ... уверен, что он работает, но он работает по-разному в каждом браузере, и вы всегда просто хотите, чтобы у вас была строгая мгновенная ошибка ... – Esailija

+0

Какие различия вы имели в виду? – PHPst

+0

хорошо см. Http://stackoverflow.com/q/15547897/995876 например – Esailija

ответ

0

Это полностью зависит от браузера, поскольку это просто уловка интерфейса. Фактический URL-адрес - это закодированный, и если вы попытаетесь скопировать его, вы увидите, что ваш буфер обмена имеет URL-адрес в кодировке URL.

+0

Так безопасно ли это использовать? – PHPst

+0

@PHPst, что вы подразумеваете под этим? Безопасно писать эти символы буквально в поддерживающих браузерах при их использовании, но в коде вы должны кодировать URL-адрес. – Esailija

0

Когда вы звоните «http://en.wikipedia.org/wiki/Prince Персии», ваш браузер делает магию за сценой. Косвенный символ преобразуется в% 20 escape-формат и отправляется на веб-сервер. http://en.wikipedia.org/wiki/Prince%20of%20Persia

Википедия, тем не менее, не возвращает вам настоящую страницу. Ваш браузер получает ответ перенаправления в формате подчеркивания. Затем ваш браузер загружает реальный контент. Его бизнес-логика сервера википедии для дезинфекции видимых URL-адресов. HTTP/1.0 301 Moved Постоянно Адрес: http://en.wikipedia.org/wiki/Prince_of_Persia

Вы просто положить ваш браузер и интернет работает сложнее :-)

Любое юникода письмо хорошо, они% XX спасся перед отправкой в ​​веб-браузере. Вот реальный формат url, который видит веб-сервер назначения. http://en.wikipedia.org/wiki/%D8%B3%D9%86%DA%8C%D9%8A

Его веб-сервер знает, как обращаться с UIF8 unicode escaping, большинство современных серверов знают, что делать. Интеллектуальные браузеры могут конвертировать% XX экранов в видимые буквы в поле адресной строки. Когда вы программируете http-программки, вам нужно знать, как работает экранирование.

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