文字コードのうち1文字分として2バイト(0x88 0xB7)を得たところまでOK!という方を前提にしています。
以下のことが全てだったりするのですが、
(私たち)Shift-jis としては、
0x88 0xB7 を 姐 とする
ということです。
これが 画面 に文字を、という仕様であれば画面のドットに 姐 と見えるような点を表示させる、
これがプリンタに文字を、という仕様であればプリンタは紙に 姐 と見えるような黒を付ける、
という動作をします。
ポイントとしては、画面は点を表示させる処理、プリンタは黒を付ける処理、のところまでは 0x88 0xB7 のまま、ということです。
具体的には、ファイルやネットワーク上では常に 0x88 0xB7 としてデータが記録・読出・通信をしています。
これを頭の中でイメージしておくと、次のことがよくわかると思います。
データを見ようとすると、点を表示させる、黒を付けることになるので、 安 もしくは 0x88 0xB7 でしか見れない!
当たり前でもあるし、次の理由から悩ましい問題でもあります。
これは、jis78 のコードを見たくても、2020年代のWindows、MacOS等で行おうとすると、その時代の処理となることです。
では、一覧のようにして比較してみると、
(私たち)Shift-jis としては 0x88 0xB7 を 姐 とする
(私たち) jis としては 0x88 0xB7 を 袷 とする
参考:https://pentan.info/doc/sjis_list.html
という定義を、それぞれの人たちがしているにすぎません。
なので、0x88 0xB7 が 姐 と画面に表示されたらWidnows、MacOSがShift-jisとして文字を出したんだな、
袷 と 紙 に印字されたらWidnows、MacOSが jis として文字を出したんだな、
ということなのです。
これらが特に問題になるのは、コード変換のとき、でしょう。
一番よい方法は、全部の時代コードそれぞれに、他では何番、としてデータがあることです。
ただ、誰も作っていないようです・・・
概要としては、Shift-jis > jis のとき、 0x88 0xB7 だったら 0x88 0xBF に置換する。(jisで袷は 0x88 0xBF)
というようにあればOK。
現在では計算での変換が多いのと、一見問題がなさそうですが、jisには78、83、90、2004 で文字の形が違うこと、同じ文字「厩」は 0x 0x の場所が異なること、文字コードとしてShift-jis、Code932(Microsoft Shift-jisと表現されるもの)、UTF-8、NEC系、IBM系、があります。
それぞれの特徴だけが掲載されたページが多いのですが、ライブラリでも全体を賄うものは無いようなので、単純なコード表と変換表(エクセルで作れる?)があればなと思います。