2011-10-11 50 views
0

我有一個簡單的程序,它試圖解碼一個編碼的URL。但由於某種原因,這似乎並不奏效。有人會知道爲什麼會發生這種情況嗎?我花了幾個小時,但一直沒有弄清楚。Java 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 

這是相同的編碼串。

+0

有沒有什麼可以解碼的字符串。嘗試在一些加拋('+')字符或字節值的東西,如('%32')。 –

+0

你想要達到什麼目的? – fmucar

回答

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 

您的輸入

+0

感謝您的迴應!你是對的 - 我需要使用base64解碼。我將如何去做在java中呢? – Abhijit

+1

@Abhijit http://stackoverflow.com/questions/469695/decode-base64-data-in-java –

+0

檢查公地編解碼器,它有一個base64解碼器/編碼器 –

1

它正在做它應該做的。沒有什麼可以改變的。

4

您發送的字符串不是URL編碼的,因此無法解碼。你從哪裏弄到弦?