2016-04-08 12 views
0

UTF-8は、Unicode文字列をバイトシーケンスにエンコードするメソッドです。 Base64では、私たちが最初にしてbase64で文字列 ベース64エンコーディングに変換する利点?

String base64encodedString = Base64.getEncoder().encodeToString("TestString".getBytes("utf-8")); 

バイトに文字列を変換し、今私は、ネットワークを介してベース64件のデータを送信する方法の例の文字列ここで

にバイト配列をコードする方式です。私の質問は、データが常にバイトシーケンスとして移動されてから、 バイトシーケンスを文字列に変換する利点は何ですか?私はここでいくつかのポイントを逃していることを知っているが、それが何であるか分からない?

+0

base64は常にバイトと見なすことができるASCIIに変換されます。 –

答えて

6

テキストプロトコルでバイナリデータ(0〜255の任意のバイト値)を渡すときは、通常、base64に変換します。例えばJSON、XML、Emailで

+0

Peterに感謝します。しかし、それはデータが常にバイト列として移動してから、バイト列を元の64までの文字列に変換する利点は何ですか? – emilly

+0

@emilly時にはプロトコルは、データがバイナリではないテキストを前提とするバイトの上に構築されます。例えば'PrintWriter'と' BufferedReader'を使います。これは '\ r'と' \ n'に特別な意味があることを意味するテキストを期待しています。もしバイナリにこれがあると、データがエンコードされない限り問題になります。 –

+0

しかし、HTTP経由で添付ファイルや画像をアップロードする際に、ベース64を使用している人はいませんか? 2番目の質問は、base64文字列に変換した後でさえ、データはビット単位で移動しますが、一度に6ビットのパケットで移動します。右 ? – emilly

関連する問題