В соответствии с темой, я пытаюсь сделать это, но он помечается как недопустимый URL-адрес с помощью веб-сайта проверки: http://www.getlinkinfo.com/
Пример типа URL, который я пытаюсь сделатьподтвердите это: http://www.google.com/?link=www.yahoo.com?value=foobar
http://www.google.com/?link=www.yahoo.com?value=foobar
Это в формате, аналогичном тому, что я пытаюсь заставить работать.Я пробовал кодировать различные части, но все они дают одинаковые результаты.
Кодирование только значения не работает: http://www.google.com/?link=www.yahoo.com%3Fvalue%3Dfoobar
http://www.google.com/?link=www.yahoo.com%3Fvalue%3Dfoobar
Кодирование всего параметра запроса не работает: http://www.google.com/?link%3Dwww.yahoo.com%3Fvalue%3Dfoobar
http://www.google.com/?link%3Dwww.yahoo.com%3Fvalue%3Dfoobar
Не работает кодирование всего URL-адреса: http%3A%2F%2Fwww.google.com%2F%3Flink%3Dwww.yahoo.com%3Fvalue%3Dfoobar
http%3A%2F%2Fwww.google.com%2F%3Flink%3Dwww.yahoo.com%3Fvalue%3Dfoobar
Кто-нибудь знает, как можно отформатировать URL-адрес так, чтобы он хорошо проходил проверку?
Заранее спасибо
Вы можете использовать метод encodeURI в JavaScript следующим образом:
encodeURI
encodeURI("http://www.google.com/?link=www.yahoo.com%3Fvalue%3Dfoobar");
Это приведет к:
http://www.google.com/?link=www.yahoo.com%253Fvalue%253Dfoobar
И когда вы введете результат в текстовое поле на http://www.getlinkinfo.com, вы получите ваш URL как действительный!
Пожалуйста, посмотрите на URLEncoder , например:
URLEncoder.encode("mysite.com?a=test&b=test", "UTF-8");
Должно дать вам mysite.com%2Fa%3Dtest%26b%3Dtest
mysite.com%2Fa%3Dtest%26b%3Dtest
Надеюсь, это поможет вам.