Java URL Decoder не работает должным образом

У меня есть простая программа, которая пытается декодировать закодированный URL. Но по какой-то причине это, похоже, не работает. Кто-нибудь знает, почему это происходит? Я провел часы, но не смог понять это.

Вот программа:

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

public class DecodeTest {

public static void main(String[] args) {

    String encodedUrl = "aHR0cHM6Ly93d3cuYWUuY29tL3dlYi9teWFjY291bnQvYWNjb3VudF9ob21lLmpzcA";
    String decodedUrl = "";

    try {
        decodedUrl = URLDecoder.decode(encodedUrl, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    System.out.println("String: " + decodedUrl);
    }
}

Вывод следующий:

 String: aHR0cHM6Ly93d3cuYWUuY29tL3dlYi9teWFjY291bnQvYWNjb3VudF9ob21lLmpzcA

Это та же самая закодированная строка.

3 ответа

Решение

Вы уверены, что вам не нужен декодер base64? это ожидаемый результат. Кодирование / декодирование URL - это что-то вроде преобразования пробелов в%20 и тому подобное.

%0D%0AGood+luck%28you%27ll+need+it%29 

в

Good luck (you'll need it)

декодирование base64 даст вам

https://www.ae.com/web/myaccount/account_home.jsp

для вашего вклада

Строка, которую вы отправляете, не имеет URL-адреса, поэтому не может быть декодирована. Где ты взял строку?

Он делает именно то, что должен. Здесь нечего менять.

Другие вопросы по тегам