替代字元

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

替代字元(英語: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). 

參見