android.util.Base64 параметр кодирования / декодирования флагов - PullRequest
7 голосов
/ 24 февраля 2012

Согласно Javadoc, android.util.Base64.decode () принимает два параметра: текст и «флаги».Эти флаги представлены в виде int и (я цитирую):

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);
    }
}

Спасибо за ваше время.

1 Ответ

24 голосов
/ 24 февраля 2012

int-флаги, передаваемые функциям, обычно определяются как побитовые ИЛИ для достижения комбинированного эффекта.

Обычно можно узнать, посмотрев на постоянные значения, они будут идти 0 1 2 4 8 16 ..

Что касается вашего вопроса, вы можете использовать следующее для определения флага:

int flags = Base64.NO_WRAP | Base64.URL_SAFE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...