根據Javadoc,android.util.Base64.decode()有兩個參數:文本和「標誌」。這些標誌是INT形式和(我引述):android.util.Base64編碼/解碼標誌參數
flags controls certain features of the decoded output. Pass DEFAULT to decode standard Base64.
首先,感謝給誰就給誰決定寫一個模糊的Javadoc。我看到Base64有一些枚舉字符串,實際上,我們一直使用Base64.NO_WRAP作爲我們的標誌。然而,在這個特定的實例中,我們需要使用兩個標誌:NO_WRAP和URL_SAFE。
我們如何指定兩個標誌?我們嘗試用管道('|')將它們分開,並且沒有這樣做。
import android.util.Base64;
public class Foo {
public static void main(String[] args) {
String urlSafeBase64EncodedString = getUrlSafeBase64EncodedString();
int flags = ????????; //Need both Base64.NO_WRAP and Base64.URL_SAFE
String decodedString = Base64.decode(urlSafeBase64EncodedString, flags);
}
}
謝謝你的時間。
「那沒有做到」 - 那它做了什麼? (你究竟寫了些什麼*)如果你要抱怨其他人含糊不清,它有助於確保你自己:) – 2012-02-24 18:33:35
它沒有做任何事情。它無法解碼Base64字符串。我已經說過了,我用管道符號分隔了兩個標誌......那怎麼不完全清楚? – 2012-02-24 18:38:02
完全有可能您的語法錯誤,例如「Base64.NO_WRAP | URL_SAFE」。那當然會產生彙編錯誤......這也會被「沒有這樣做」所涵蓋。現在「它沒有做任何事情」和「它無法解碼Base64字符串」並不完全相同。 *它是如何解碼失敗的?有沒有例外,它是否給出了空洞的結果,它掛了嗎? – 2012-02-24 18:42:34