替代字符

替代字符(英語:substitute character,␚)是一個控制字符,它被用於替代識別為無效、錯誤或不能在指定設備上表示的字符。它也被一些編程語言用於轉義序列

ASCIIUnicode字符編碼中,該字符的編碼為第26號(十六進制 1A)。標準鍵盤下,同時按下Ctrl + Z鍵將發送此代碼(Ctrl+Z通常表示為^Z)。[1]當使用Unicode進行編碼時,輸出會兼容該字符時,但是推薦使用 replacement character (�, U+FFFD) 進行代替,以達到解碼時顯示該字符的目的。

使用

文件末尾

CP/M 1和2(以及MP/M英語MP/M的衍生品)上,EOF必須被顯式標記,因為CP/M文件系統本身不記錄文件大小,並且文件放在固定大小的記錄空間上,而每個文件的結尾通常都會留下一些已分配但未使用的空間。[2][3]在CP/M上這會使用十六進制1A字符填充。CP/M 3及更高版本(以及如Concurrent CP/M英語Concurrent CP/MConcurrent DOS英語Concurrent DOSDOS Plus英語DOS Plus等衍生品)所使用的擴展CP/M文件系統支持字節粒度文件,[4][5]所以這不再是一個強制要求,而是一個純粹的慣例,以確保向後兼容性。

CP/M86-DOSMS-DOSPC DOSDR-DOS及它們的各種衍生品中,字符26也用於指示字符流的結束,從而用於終止交互式用戶輸入命令行窗口(以及經常用於完成控制台輸入重定向,例如COPY CON: TYPEDTXT.TXT所要求的輸入)。

儘管在技術上不再需要指示文件的結束,但許多文本編輯器和程序語言直到現在仍支持該約定,或者可以被配置為在編輯時將該字符插入到文件末尾,或者至少適當地處理它們的文件。在這種情況下,它通常被稱之為「軟」EOF,因為它不一定表示文件的物理性結束,更多是「之後沒有有用數據」的一種標記。因此事實上,在該字符後可能仍存有有用的數據,直至它在文件系統上的終止點。因而,它也可以被用來隱藏文件的內容,在文件輸入到控制台或某些編輯器時。許多文件格式標準(例如PNGGIF)在其標題段中包含字符26以精確完成功能。一些現代的文本文件格式(例如CSV-1203[6])仍推薦插入EOF字符作為文件的最後一個字符。但是,在MS-DOS微軟Windows中輸入Control+Z並不會嵌入一個EOF字符,系統API也不使用該字符來表示文件的實際結尾。

一些編程語言(例如Visual Basic)在使用內置的文件讀取方式時不會讀取軟EOF之後的內容,因此若需要則必須使用替代方法,例如將文件打開為二進制模式,或者使用「文件系統對象」操作它。

字符26被用於標記「文件結束」,即使ASCII將它稱為「替代」(Substitute),並且有其他字符完成此目的。被稱為「文件分隔符英語File Separator」的字符28也被用於類似的目的

Control+Z

Control+Z(Unix)

Unix操作系統中,Control+Z用於掛起 當前正在執行的交互進程(放置於後台並使之停止)。[7][8]

掛起的進程之後可以通過前台(交互式)模式恢復,即輸入命令(fg),或者以後台模式繼續執行,即輸入命令(bg),或者被終止英語Exit (operating system)。當一個用戶在終端上輸入時,當前運行的前台進程發送一個「終端終止」(SIGTSTP英語SIGTSTP)信號,這通常就導致進程被掛起而暫停執行。

Control+Z(其他)

在許多用戶圖形界面和應用程序中,Control+Z(Mac OS上為⌘ Command+Z)可以用來撤銷英語Undo上一次操作。同時,許多應用程序也支持按下多次Control+Z來撤銷多次操作。Control+ZXerox PARC選擇的一列用來控制文本編輯鍵盤序列。選擇這些特定的按鍵英語Keystroke很可能是因為它們在標準QWERTY鍵盤上的獨特位置,Z(撤銷)、X英語Control-X(剪切)、C英語Control-C(複製)、V英語Control-V(粘貼)鍵都在標準QWERTY鍵盤的左下區域。

更多可參考詞條:快捷鍵

其他

Unicode安全注意事項頁面存檔備份,存於網際網路檔案館(英文)建議將此字符作為字符集轉換期間不可映射字符的安全替代品。

表示法

  • ASCIIUnicode以如下形式表示它:
    八進制碼:32
    十進制碼:26
    十六進制碼:1A、U+001A
    助記符號:SUB
    二進制值:11010

參考資料

  1. ^ Keyboard shortcuts for Windows. Microsoft Support. Microsoft. [2 June 2012]. (原始內容存檔於2015-03-10). 
  2. ^ John Elliott (1998).
  3. ^ John Elliott (1998).
  4. ^ John Elliott (1998).
  5. ^ John Elliott (1998).
  6. ^ CSV-1203 format specification Portuguese Web Archive的存檔,存檔日期2016-05-16
  7. ^ Other Key combinations. linux.die.net. [2020-01-14]. (原始內容存檔於2015-07-23). 
  8. ^ Quick Reference: Unix Commands. IT Connect. University of Washington. [2 June 2012]. (原始內容存檔於2020-11-06). 

參見