根据 ISO/IEC 6429:1992,什么是控制功能的 7 位/8 位环境?

根据 ISO/IEC 6429:1992,什么是控制功能的 7 位/8 位环境?

我正在学习 ECMA-48,我看到很多关于控制功能的 7 位和 8 位环境的注释。例如:

注意 LS0 仅用于 8 位环境;在 7 位环境中,使用 SHIFT-IN (SI)。

谁能解释一下它们之间的区别,并在使用它们时给出真实的例子。

答案1

非常早期的打印机可能在色带上有两种颜色,就像机械打字机一样。 SI和SO在可选颜色和正常颜色之间切换。请注意,这与 Shift 键的用法不同!

早期的打印机和终端(从现在起我将它们统称为终端)使用 7 位 ASCII 代码。通常第八位用作奇偶校验,但这必须进行配置。为了允许使用额外的字符,某些终端具有额外的内置字符集,或者能够下载它们。为了在它们之间切换,SI 和 SO 被劫持了。例如,要以片假名打印,您需要发送 SO,稍后要返回 Latin-1 则发送 SI。

随着八位系统变得越来越普遍,附加的控制代码也变得可用。其中两个附加代码是 SSI 和 SSO,其中“SS”代表单班制。例如,要打印单个图形字符,您可能会使用而不是必须发送 <glyph,这会带来屏幕变成“象形文字”(正如我的用户所称的那样)的风险。为了区分这些模式,原来的 SI 和 SO 被重命名为 LSI 和 LSO(即 Locking Shift),但保留了它们原来的行为。

所以总结一下 LSI=SI 和 LSO=SO,只是两个环境之间的名称有所不同。

举个例子:假设我将英国字符集作为默认字符集。我想引用一点法语,比如说“garçon”。我会发送线路 67 61 72 0E 5C 0F 6F 6E。请注意 5C 周围的 0E 和 0F,否则就会打印字形反斜杠。

我从数字出版的“LA75 配套打印机:程序员参考手册”中获取了详细信息,但任何 20 世纪 80 年代或 90 年代的打印机或终端手册都应该显示大致相同的内容。不过,细节因型号和时间的推移而有所不同。

相关内容