java - android.util.Base64 编码/解码标志参数

标签 java android base64

根据 Javadoc,android.util.Base64.decode() 有两个参数:文本和“标志”。这些标志采用 int 形式并且(我引用):

flags 控制解码输出的某些特征。传递 DEFAULT 以解码标准 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);
    }
}

感谢您的宝贵时间。

最佳答案

传递给函数的 int 标志通常定义为按位或运算以实现组合效果。

您通常可以通过查看常量值来判断,它们会变为 0 1 2 4 8 16 ..

关于您的问题,您可以使用以下内容作为标志定义:

int flags = Base64.NO_WRAP | Base64.URL_SAFE;

关于java - android.util.Base64 编码/解码标志参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436103/

相关文章:

java - 在特定类上使用 Collection.sort 时出现语法错误

android - JobService中jobFinished和onStopJob的交互

java - AsyncTask doInBackground() 方法中的空指针异常

javascript - 将相机捕获的图像转换为 base64 - Ionic

JavaFX : How to keep the VBox background color persistent?

JTextPane 中的 Java Swing 聊天室?

Java:从字符串加载类

java - 语法错误,插入 ";"和 ")"找不到错误

html - Base64 PNG 数据到 HTML5 Canvas

java - 如何用 Java 解析 .eml 文件