Я только что попробовал следующий URL: http://www.google.com/search?hl=en&q=http://www.yahoo.com/path/to/location в моем браузере, и это сработало!Что заставило это работать?И почему нужно кодировать URL-адреса, кроме замены пробелов + или% 20 и т. Д.?То есть мне все еще нужно кодировать мои URL-адреса, даже если у меня нет символов, которые не могут быть указаны в действительном URL-адресе?
http://www.google.com/search?hl=en&q=http://www.yahoo.com/path/to/location
Спасибо за ваше время.
Ваш браузер, вероятно, закодировал URL-адрес, введенный вами перед отправкой запроса.Вы должны быть в состоянии проверить это, проверив фактический HTTP-запрос.Например, в Firefox вы можете сделать это с LiveHttpHeaders.
Браузеры обычно кодируют URL-адрес автоматически и могут отображать или не отображать его в кодировке. PHP-скрипт может или не может закодировать его автоматически ... в противном случае это приведет к ошибке синтаксического анализа URL или к чему-то другому.