Согласно спецификации универсального синтаксиса URI ( RFC 2396 ), символ двойной кавычки явно исключен и должен быть экранирован (т. Е. %22
).Смотрите раздел 2.4.3.Причина, приведенная в спецификации:
Символы угловых скобок «<» и «>» и двойных кавычек (") исключены, поскольку они часто используются в качестве разделителей вокруг URI в текстовых документах.и поля протокола.
Вы можете легко понять, почему это так - представьте, что вы пытаетесь создать ссылку в HTML на ваш URL:
<a href="http://somesite/search/"my search string""/>
Это может привести к сбою анализа HTML(а также нарушает подсветку синтаксиса SO.) У вас также могут возникнуть проблемы с выполнением основных операций с URL-адресом, таких как отправка его по электронной почте кому-либо (почтовый клиент не сможет правильно проанализировать URL-адрес), размещение его на доске объявлений и мгновенная отправкасообщение и т. д.
Для чего это стоит, пробелы также явно исключены (тот же раздел RFC объясняет, почему).