Terminal

根據 ISO/IEC 6429:1992 控制功能的 7 位/8 位環境是什麼?

  • March 22, 2022

我正在學習 ECMA-48,我看到很多關於控制功能的 7 位和 8 位環境的註釋。例如:

注意 LS0 僅用於 8 位環境;在 7 位環境中使用 SHIFT-IN (SI)。

誰能解釋它們之間的區別,並在使用它們時給出真實的例子。

早期的列印機可能在色帶上有兩種顏色,就像機械打字機一樣。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 年代的列印機或終端手冊都應該大致相同。不過,細節確實因型號和時間而異。

引用自:https://unix.stackexchange.com/questions/696360