6

base64で16進エンコーディングを使用する理由について少し興味があります。Base64の方が効率的だと思います。特に、データベースが常に16進エンコーディングを使用しているように見えるのはなぜですか?それは歴史的な問題ですか、それとも16進エンコーディングについて何かが欠けていますか?

4

6 に答える 6

5

画面を読み上げるには、本物のオタクである必要がありBASE64ます。

Oracle、を実行すると、フィールドHEXTORAWに何が含まれているのかがわかりますが、ではわかりませんでした。RAWBASE64

たとえば、たくさんのを見ると、0x3Fエンコーディングに何かがあることがわかります。

内部的には、これらは単なるバイナリバイトであり、エンコードする必要はありませんが、画面の反対側にいる人に表示する必要があります。

于 2009-06-18T18:17:44.543 に答える
3

これは、効率的なスペースの使用と読みやすさの間の適切な妥協点です。ビットパターンは16進数で非常に明確になりますが、他の基数はそれほど明確ではありません。

0x8080と32896のどちらが読みやすいですか?16進値はです。

また、各16進数がニブルに等しい(したがって、各ペアが1バイトに等しい)という優れた特性もあります。

Base 64よりも、頭の中の16進数を理解する方がはるかに簡単です。

データベースに関しては、データの表示方法と保存方法に違いがあることに注意してください。ほとんどの場合、データを16進数で表示するだけです。

于 2009-06-18T18:22:08.813 に答える
2

結果の値をWindowsでファイル名として使用する場合、base64は大文字と小文字の両方を使用するため、Base64は機能しません。同様の理由で使用できない場合もあると思います。

読みやすさに関する他の回答に同意します。16進数は8ビットバイトにうまく整列しますが、base64の「数字」はそうではなく、1桁には2バイトの一部を含めることができます。

于 2009-10-10T13:22:22.673 に答える
1

文字列ストレージ(「潜在的に」XMLセーフエンコーディングを使用)の場合、base64の4/3ではなく5/4の肥大化であるため、ASCII85を使用するとさらに効率を上げることができます。

ただし、base64よりも「読み取る」のはさらに困難です。また、これをサポートしているアプリケーションは多くないため、エンコードとデコードを行うために独自のクラス/関数を作成する必要があります。

于 2009-11-23T02:22:31.667 に答える
0

データベースが実際にデータをバイナリとして格納していると思いますが、クエリエディタは16進エンコーディングを使用してデータを表示します。これは、SQLServerクエリアナライザーが行うことです。

于 2009-06-18T18:21:44.927 に答える
0

個人的な好みの問題だと思います...16進数は、Base32またはBase64の何かよりもはるかに読みやすいです。

于 2009-06-18T18:21:45.753 に答える