Pavel_K Asked: 2022-03-23 01:14:28 +0800 CST2022-03-23 01:14:28 +0800 CST 2022-03-23 01:14:28 +0800 CST 根据 ISO/IEC 6429:1992 控制功能的 7 位/8 位环境是什么? 772 我正在学习 ECMA-48,我看到很多关于控制功能的 7 位和 8 位环境的注释。例如: 注意 LS0 仅用于 8 位环境;在 7 位环境中使用 SHIFT-IN (SI)。 谁能解释它们之间的区别,并在使用它们时给出真实的例子。 terminal escape-characters 1 个回答 Voted Best Answer user516667 2022-03-23T02:19:25+08:002022-03-23T02:19:25+08:00 早期的打印机可能在色带上有两种颜色,就像机械打字机一样。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 配套打印机:程序员参考手册”中获取了详细信息,但是任何 1980 年代或 1990 年代的打印机或终端手册都应该大致相同。不过,细节确实因型号和时间而异。
早期的打印机可能在色带上有两种颜色,就像机械打字机一样。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 配套打印机:程序员参考手册”中获取了详细信息,但是任何 1980 年代或 1990 年代的打印机或终端手册都应该大致相同。不过,细节确实因型号和时间而异。