Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android.util.Base64编码/解码标志参数_Java_Android_Base64 - Fatal编程技术网

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

Java android.util.Base64编码/解码标志参数,java,android,base64,Java,Android,Base64,根据Javadoc,android.util.Base64.decode()接受两个参数:文本和“标志”。这些标志采用int形式,并且(我引用): 标志控制解码输出的某些功能。通过默认值解码标准Base64。 首先,感谢决定写一篇模糊的Javadoc的人。我看到Base64有一些枚举字符串,实际上,我们一直使用Base64.NO_WRAP作为标志。然而,在这个特定的实例中,我们需要使用两个标志:NO_WRAP和URL_SAFE 如何指定这两个标志?我们试着用管子(“|”)把它们分开,但没有成功

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

标志控制解码输出的某些功能。通过默认值解码标准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;

对于
kotlin
,您可以使用

val flag = Base64.URL_SAFE or Base64.NO_WRAP

“那没用”-那它用了什么?(你到底写了什么?)如果你要抱怨别人含糊其辞,那么你自己说得准确一点会有帮助:)它什么也没做。它无法解码Base64字符串。我已经说过,我用一个管道符号分隔了两个标志……这怎么不清楚呢?完全可能是语法错误,例如“Base64.NO_WRAP | URL_SAFE”。当然,这会导致编译错误。。。这也会被“那没做”所涵盖。现在,“它什么也没做”和“它没能解码Base64字符串”不是完全一样的事情。它怎么没能破译呢?是否存在异常,是否给出空结果,是否挂起?用管道分隔,如
int flags=Base64.NO_WRAP | Base64.URL_SAFE?我想@jonskeet想知道decode()是否抛出了一个异常,返回的字符串是否保持不变,是否执行了其中一个标志,但没有执行另一个标志,等等。我刚刚检查了代码,这正是您希望它执行的操作。如果它没有满足你的期望,那不是因为它的模棱两可或者没有在任何地方记录在案。请描述更多您正在寻找的输出,也许我们可以帮助您。但是,通常的“不打包”安全机制正如预期的那样起作用。我将不得不写一封非常严厉的信给我的CS教授,因为我从来没有明确说明这一点。我以后会把它归档的。工作得很好!非常感谢。