Linux 控制台中的字元集/字型
我想編寫一個在終端中執行的遊戲。我做了一些終端著色,並想使用一些 unicode 字元來製作漂亮的 ascii 藝術“圖形”。但是linux終端不支持很多unicode字元(非X終端,我不知道你怎麼稱呼它……VT100?我的意思是使用文本模式輸出的終端,沒有圖形模式,因此使用與 bios 中相同的字型來顯示文本。)
例如,我想使用“半塊”字元 U+2580 (▀) 和 U+2584 (▄) 繪製半字元“像素”,但終端不支持這些字元。(這些只是範例 - 我想使用更多特殊字元……)
該字型支持哪些字元?是否有任何文件或表格列出這些字元?這個設備是依賴的還是有任何“標準”?
該終端稱為 Linux 控制台,有時也稱為“vt”(虛擬終端的縮寫)。術語可能會令人困惑,特別是因為它的使用不一致,有時甚至不正確。您可以通過閱讀“終端”、“外殼”、“tty”和“控制台”之間的確切區別是什麼來找到有關術語的更多資訊?.
Linux 控制台支持使用者配置的字型,因此您的問題的答案是“無論使用者設置什麼”。更改字型的實用程序是Linux 控制台工具
consolechars
的一部分。硬體僅支持 8 位字型,儘管您可以通過支持 unicode 編碼輸出但只有 256 個字形(忽略其他字元)來部分解決此問題。閱讀lct 文件(在撰寫本文時線上,它應該包含在您的發行版包中)以獲取更多資訊。如果您使用 Linux幀緩衝區,則可以直接或通過fbterm獲得適當的 unicode 支持。
半塊字元包含在IBM 程式碼頁 437中,ROM 大多數 PC 影片適配器都支持該程式碼頁。根據您需要的字元,這可能就足夠了。
請注意,如今很少有人使用 Linux 控制台。有些人因為各種原因不能使用它(沒有執行 Linux、在遠端 X 終端上執行、有一個文本模式有問題的影片適配器……)。我不建議花太多精力去支持它。