Character-Encoding
posix 支持哪些字元編碼?
POSIX 定義了針對文本文件的工具的行為,例如
grep
,awk
,等。sed
由於它是一個文本文件,我認為存在字元編碼的問題。問題:
- POSIX 支持的字元編碼是什麼?(或者,POSIX 兼容系統可以處理何種編碼的文本文件?)
POSIX 沒有規定特定的字元編碼。唯一固定位置的字元是 null,它必須是 00。
POSIX 確實要求其可移植字元集中的所有字元都存在。可移植字元集包含可列印的 ASCII 字元、空格、BEL、退格、製表符、輸入、換行符、垂直製表符、換頁符和空值。未指定編碼的位置或方式,但以下情況除外:
- 它們都是一個字節(8 位)。
- Null 用所有位為零表示。
- 數字 0-9 以該順序連續出現。
它對字元的表示沒有任何其他限制,因此符合標準的系統可以自由地支持具有這些字元的任何表示以及任何其他字元的編碼。
同一系統上的不同語言環境可以對這些字元有不同的表示,除了
.
and/
和如果應用程序使用字元編碼不同的任何一對語言環境,或者使用與應用程序使用的語言環境具有不同編碼的語言環境訪問來自應用程序的數據,則結果未指定。
所有 POSIX 兼容系統都需要以相同方式處理的唯一文件是完全由空字節組成的文件。被視為文本的文件的行由 PCS 換行符的編碼表示終止。