Linux
linux 核心實現的 tty 是否總是使用 UTF-8 呈現數據?
似乎是這樣。我讀過IUTF8,但文件只說它允許您在進行行編輯時將輸入作為 UTF-8 處理。
但是輸出呢?如果您使用 GUI 終端,它通常允許您更改編碼以在 pty 的輸出緩衝區中呈現字節,但是核心實現的 tty 呢?
Linux 是否總是使用 UTF-8 在 tty 的輸出緩衝區中呈現字節?
“Linux”本身並沒有這樣做。應用程序(包括但不限於終端仿真器)這樣做或不這樣做。
Linux 控制台終端是一個終端仿真器,它可能/可能不解釋 UTF-8。有關更多資訊,請參閱
console_codes(4)
手冊頁。那應該列出用於切換輸出字元集的控制項,例如,ESC % Start sequence selecting character set ESC % @ Select default (ISO 646 / ISO 8859-1) ESC % G Select UTF-8 ESC % 8 Select UTF-8 (obsolete)
但是看到頁面上的最終評論對應於2006年的這個變化,懷疑轉換為web格式失去了一些文本。 另一個站點提供了更完整的表示(儘管該站點也存在此處提到的問題)。
如果您真的想閱讀手冊頁,您的本地電腦可能比任何一個都做得更好……
您可以分別使用以**
@
或結尾的序列來關閉/打開 UTF-8 模式。G
**我偶爾使用這個腳本來做到這一點:#!/bin/sh # send character-string to enable UTF-8 mode if test ".$1" = ".off" ; then printf '\033%%@' else printf '\033%%G' fi