SS (ISO-2022)

読み:エスエス
外語:SS: Single Shift
品詞:名詞

ISO/IEC 2022で用いられる符号拡張機能で、次の一字だけ、GL領域またはGR領域にバッファを呼び出すための制御コードの総称。

似た符号にLS(Locking Shift)がある。

LSがキーボードのCapsLockキーのように他のLSが出現するまで永続的に機能するのに対し、SSはShiftキーのように次の一文字だけに影響を与える。

由来

この仕様は、最初の改訂版であるISO 2022:1982から登場した。

G2を呼び出すコードとG3を呼び出すコード、合わせて二種類がある。

G0G1を呼び出すコードは無いが、この使用形態は8単位符号で、GLにはG0、GRにはG1が既に呼び出されている状況から、G2とG3を使用するような状況が想定されているからである。

要するに、EUCのためにある仕様ともいえる。

符号の種類

次の二種類がある。

  • SS2 (次の1文字だけG2をGL/GRに呼び出す) (8/14または1/11 4/14)
  • SS3 (次の1文字だけG3をGL/GRに呼び出す) (8/15または1/11 4/15)

通常は8単位符号系でC1制御文字である8/14または8/15を使うが、7単位符号系でC1制御文字が使えない場合、SS2は1/11 4/14と、SS3は1/11 4/15と、それぞれ表現可能である。

なお、ISO/IEC 2022の仕様上、SS2/SS3の後に続く文字は、GL/GRどちらでも良い。GLに呼び出す(7ビットとして使う)のが原則だが、EUCで利用可能なように、GRに呼び出しても良い(シングルシフトに続く符号のMSBが1でも良い)ことになっている。

使用例

SS2またはSS3はその特徴から文字にとっては前置であり、SS2やSS3にG2またはG3の符号を続ける。

バッファにある文字は、ISO/IEC 2022の仕様から1バイト系、2バイト系、3バイト系、4バイト系のいずれかであるが、それは適時、処理系が判断せねばならない。

  • G2が1バイト系である場合の例: SS2 11/1
  • G3が2バイト系である場合の例: SS3 11/0 10/1

もし処理系を作る場合は、符号長は指示された時点で判断できるので、呼び出しの時点でその符号長を取得するような実装となるだろう。