車輪の再発明とおっしゃっているのを承知で書き込みます。バイト単位の通信の場合、簡単な方法として情報パケットの先頭に"STX"文字を置くというものがあります。で、情報自体の中に"STX"と同じワードが現れたら、"ESC"+"S"にするといった置き換えをします。この場合、オーバーヘッドは1/128になります。
あ、1/256 + パケットヘッダか。
>酔漢さん コメントどうもです。 使用目的として、数バイト程度の少量のバイナリデータ(ASCII文字以外もという意味で)が一つの意味単位になりそうであったので、おそらく上記の方法とお教えいただいた方法で伝送量はそれほど変わらないかと思います。 また、ASCII文字だけの通信でしたら"ESC"によるエスケープが有効ですが、バイナリですと"ESC"+"S"を転送したいという事態が当然ながら発生するので、"ESC"を表現するのに"ESC"+"ESC"にしてみたりと、今回の目的では更におまけをつける必要がありますね。