SI/SO制御
読み方:エスアイエスオーせいぎょ
別名:SO/SI制御,シフトイン・シフトアウト制御,シフトアウト・シフトイン制御
SI/SO制御とは、文字コード体系の切り替え、特にシングルバイト文字とマルチバイト文字の切り替えのために用いられる制御コードである。主に大型汎用機(メインフレーム)の制御システムなどで用いられる。
SI/SO制御における「SI」は Shift-In(シフトイン)、同じく「SO」は Shift-Out(シフトアウト)の略である。IBMの「z/OS」では、SI(シフトイン)に「x0F」、SO(シフトアウト)に「x0E」のコードが割り当てられている。
シングルバイト文字はもっぱらASCIIを指し、マルチバイト文字は日本語やその他の言語(文字)体系を含む。ASCIIコードを前提としているデータ列にマルチバイト文字を混在させる場合に、制御コードを使って明示的に文字コードの切り替えることで、システムが文字コードを正しく判別できるようにしている。
z/OSの制御コード(x0Fとx0E)のアルファベット順から察せられる通り、切り替えはシフトアウト(x0E)が先行する、と捉えた方が自然である。基本的には、SO(シフトアウト)によってASCIIからマルチバイト文字へと切り替えられ、マルチバイト文字がSI(シフトイン)によってASCIIへ回帰する。SOコードが置かれた部分以降がマルチバイト文字として扱われ、SIコードが置かれた地点まで続き、SIコードの置かれた部分からは再びASCIIに戻る。
- SI/SO制御のページへのリンク