文字列にバイナリを埋め込む方法としてbase64が良く使われていますが、 バイナリを埋め込んだ文字列の 転送/格納にUTF16を使用する場合、 base64文字列をUTF16で扱うことになるため、上位ビットが常に0になり、 転送/格納効率が非常に悪くなります。 UTF16の場合は、base64のようにアルファベットや数字を使うよりも、 より多くの種類がある漢字を使った方が 効率が良くなるはずです。というわけで、 既存技術を探してみたところ、 base16kというものが見つかりました。 base64では半角アルファベットや数字等、64種類の文字を使用するに対し、 base16kでは、Unicodeのうち、U+5000 - U+8fff の範囲にある、16384種類の文字を使用します。 この領域はCJK統合漢字と呼ばれるようで、みっちり漢字が詰まってます。 base16kエンコーダ/デコーダのサンプルプログラムを作ってみました。 boostライセンスとして公開します。
ライセンス:Boostライセンス
[PageInfo]
LastUpdate: 2015-08-15 17:50:15, ModifiedBy: mocchi_2012
[Permissions]
view:all, edit:admins, delete/config:admins