2016-10-06 20 views
-1

私のような線で最近Javaエンコーディングをたくさん見ました:NumberがBase64.encodeToString(data、number)の意味は何ですか?

Base64.encodeToString(data, 0);

Base64.encodeToString(data, 2);

数が本当に何を意味するのでしょうか?私は0がデフォルトまたは偽であると思われ、2はどういう意味ですか?多分Base64.encodeToString(data, Base64.NO_WRAP)と同じでしょうか?

+0

[APIのドキュメント](https://developer.android.com/reference/android/util/Base64.html)を参照してください。定数 'NO_WRAP'は値2を持つので、2番目の質問に対する答えはyesです。 0は 'Base64.DEFAULT'と同じ意味です。それはすべてドキュメントにあります。 – Jesper

+0

あなたはそれを次のように解決することができます:[Base64フラグのパラメータ](http://stackoverflow.com/questions/9436103/android-util-base64-encode-decode-flags-parameter) – Jai

+0

最小の努力の法則... 。 – Hackerman

答えて

-1

ここではdocに記載されているとおり、次のフラグを渡すことができます。それぞれはその意味を説明した。

int CRLF -> Encoder flag bit to indicate lines should be terminated with a CRLF pair instead of just an LF. 
int DEFAULT -> Default values for encoder/decoder flags. 
int NO_CLOSE -> Flag to pass to Base64OutputStream to indicate that it should not close the output stream it is wrapping when it itself is closed. 
int NO_PADDING -> Encoder flag bit to omit the padding '=' characters at the end of the output (if any). 
int NO_WRAP -> Encoder flag bit to omit all line terminators (i.e., the output will be on one long line). 
int URL_SAFE -> Encoder/decoder flag bit to indicate using the "URL and filename safe" variant of Base64 (see RFC 3548 section 4) where - and _ are used in place of + and /. 
+0

しかし、なぜ彼らは異なる値を出力しましたか?私は以前にも 'Base64.encodeToString(data、0、length、Base64.NO_WRAP)'のようなものを見た。数字は開始位置または終了位置を意味しますか?あるいは最初のx文字だけかもしれませんか? –

+0

'encodeToString(byte [] input、int offset、int len、int flags)' - >引数に言及しているように、第2引数はあなたが始める場所です。 3番目の引数は、文字列がオフセットからエンコードされるまでのlenです。休止は、オフセット&lenのないメソッドと同じです。デフォルトメソッド 'encodeToString(byte [] input、int flags)'は文字列全体を符号化します –

+0

これは本当に 'Base64.encodeToString(data、2)'は 'Base64.encodeToString(data、Base64.NO_WRAP)'ではありません。代わりに 'Base64.encodeToString(データ、3文字目)'です。 –

関連する問題