URLCompressorライブラリ(1)
また、パーセントエンコーディングやBase 64 URLエンコードでは、渡したい文字列がとても長くなると、それに比例してエンコード結果が長くなるという問題もあります。数百バイト以上の長い文字列の場合、使用する文字の偏りや、同じフレーズが繰り返し出てくるなどの性質を利用して、情報を圧縮し、短い文字列にエンコードできる場合が多くあるのですが、パーセントエンコーディングやBase 64 URLエンコードではその様な処理をしていません。
この様な状況を鑑み、ほぼどの様なケースでも、パーセントエンコーディングやBase 64 URLと同等以上の効率が得られ、なおかつ、ある程度以上の長さの文字列をエンコードする場合は、高確率でエンコード前の文字列よりもさらに短い文字列にエンコードできるエンコード法がないかと考えて作ったのが、このURLCompressorです。
This is a pen. 2oeRAu5aWC177mpと、15バイトにエンコードされ(パーセントエンコーディングより1バイト多いが、Base 64 URLよりは4バイト少ない)、
DiX8ReaZzrfpP4jxuH4JVY0ne47QHoZと、31バイトにエンコードされます。(72バイトのパーセントエンコーディングや、32バイトのBase 64 URLエンコードよりも高効率)
4. URLCompressorライブラリの効率をパーセントエンコーディングやBase 64 URLと比較する
色々な文字列を、URLCompressorライブラリ、パーセントエンコーディング、Base 64 URLの3種類のエンコード法でエンコードした場合のバイト数を調べた結果を、表1に示します。
This is a pen. http://www.yahoo.co.jp/ 本日は晴天なり。 #include int main() 吾輩は猫である。名前はまだ無い。 どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。