バイナリデータ1byteは0から255までの256種類なので、10進法3桁を使って001002003と表記することは可能です。ただ、1byteのデータが3倍にも増えてしまいます。16進法を使うと2桁で1byteを表せるので2倍にまで縮みます。現代でも比較的使われるBase64(ベース・ロクヨン)は、数字やアルファベットと一部記号の64種類を使って、1文字で6bit分表現できるので、元のデータの1.33倍で表現できます。
アルファベットではなく、日本語のかな50音表を使ったBase50を作ってみました。
「Base50」
Base50表現の「たえやうすなれむろかもうつ」は「IchigoJam」を表します。
下記コードで、JavaScriptで変換できます。(ES-Jamや、Denoでお試しください)
「Base50 src on GitHub」
Base50は、鍵のエンコードなどで使われるBase58のbaseN.jsを使ってサクッと作れます。
ただ、できればバイナリはバイナリのまま使いましょう。JSONの上位互換、CBOR(シーボル)がオススメです。
「ブラウザでもサーバーでも気軽に使えるバイナリフォーマットCBORをESモジュールにした「CBOR-es」公開」