質問

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

役に立ちましたか?

解決

画面から BASE64 を読むには、本物のオタクでなければなりません。

Oracle HEXTORAW を実行すると、 RAW フィールドの内容をある程度理解できますが、 BASE64

同様に、多くの 0x3F を見ると、エンコードに何かがあることがわかります。

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

他のヒント

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

読みやすい、0x8080または32896? 16進数の値は次のとおりです。

また、各16進数字がニブルに等しい(したがって、各ペアがバイトに等しい)niceプロパティもあります。

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

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

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

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

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

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

データベースが実際にデータをバイナリとして保存していると思いますが、クエリエディタは16進エンコーディングを使用して表示します。これは、SQL Server Query Analyzerが行うことです。

それは個人的な好みの問題だと思います... HexはBase32またはBase64の何かを読むよりもはるかに簡単です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top