Shift Out (SO) y Shift In (SI) son caracteres de control ASCII 14 y 15, respectivamente (0x0E y 0x0F). [1] A veces también se los llama "Control-N" y "Control-O".
El propósito original de estos caracteres era proporcionar una manera de desplazar una cinta de color, dividida longitudinalmente por lo general en rojo y negro, hacia arriba y hacia abajo hasta el otro color en una máquina de escribir electromecánica o teleimpresora , como el Teletype Model 38, para automatizar la misma función de las máquinas de escribir manuales. El negro era el color ambiental predeterminado convencional y, por lo tanto, se desplazaba hacia adentro o hacia afuera con el otro color en la cinta.
Los avances tecnológicos posteriores propiciaron el uso de esta función para cambiar de fuente o conjunto de caracteres y viceversa. Esto se utilizó, por ejemplo, en el conjunto de caracteres ruso conocido como KOI7-switched , donde SO comienza a imprimir letras rusas y SI comienza a imprimir letras latinas nuevamente. De manera similar, se utilizan para cambiar entre letras katakana y romanas en la versión de 7 bits del JIS X 0201 japonés . [2] [3]
Los caracteres de control SO/SI también se utilizan para mostrar pseudográficos VT100 . Shift In también se utiliza en la variante 2G [4] de la codificación de SoftBank Mobile para emoji .
La norma ISO/IEC 2022 ( ECMA -35, JIS X 0202) estandariza el uso generalizado de SO y SI para cambiar entre conjuntos de caracteres predesignados invocados en el rango de bytes 0x20–0x7F. Se refiere a ellos respectivamente como Locking Shift One (LS1) y Locking Shift Zero (LS0) en un entorno de 8 bits, o como SO y SI en un entorno de 7 bits. [5] En los conjuntos de códigos que cumplen con la norma ISO-2022 donde los caracteres 0x0E y 0x0F se utilizan con el propósito de enfatizar (como una fuente cursiva o roja) en lugar de un cambio de conjunto de caracteres, se los denomina respectivamente Upper Rail (UR) y Lower Rail (LR), en lugar de SO y SI. [6]