在所有終端中禁用 utf-8?
這個問題與我的Ubuntu 18系統有關,如下…
% uname -a Linux myhost.name.net 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
我不知道在我的正常系統升級過程中發生了多久,但我現在註意到我所有的終端視窗都在寫
UTF-8
字元。我希望所有終端視窗都使用us.ascii
(或可能iso-8859-1
)。我找不到設置這個的任何地方。此外,所有鍵盤輸入似乎都是
UTF-8
,我也希望它是us.ascii
oriso-8859-1
。預設情況下,該
LANG
變數en_US.UTF-8
在我的終端視窗中執行的所有 shell 中都設置為,但我沒有故意在任何配置文件中設置它。這發生在
xterm
、rxvt
和下,據我所知,urxvt
這些程序都沒有配置為使用。UTF-8
我正在跑步
XFCE4
,如果這有什麼不同的話。我在設置中也找不到任何設置XFCE4
。誰能建議一種方法來重置我的系統,以便所有終端視窗始終顯示
us.ascii
oriso-8859-1
,並且所有鍵盤輸入也是us.ascii
oriso-8859-1
?非常感謝你。
您沒有找到任何特定設置,因為絕大多數現代 Linux 軟體都決定了語言環境環境變數要使用的字元集。使用該
locale
命令查看完整的目前語言環境設置。你檢查過
/etc/default/locale
嗎?它是用於設置系統預設語言環境的標準 Debian 配置文件。如果你想使用 iso-8859-1 而不是 UTF-8,你應該:
- 確保該
en_US ISO-8859-1
行未註釋/etc/locale.gen
並在編輯文件後執行sudo locale-gen
(如果不是)- 將
LANG
語言環境變數(或至少LC_CTYPE
)指定為en_US.iso88591
(或根據 的正確形式locale -a | grep en_US
)如果問題是您從 Ubuntu 18 UTF-8 系統連接到使用 ISO-8859-1 而不是 UTF-8 的舊系統,您可能會考慮在傳出連接上插入字元映射層,而不是降級整個處理遺留編碼的系統。製作一個像這樣的小腳本(或 shell 函式):
#!/bin/sh luit -encoding 'ISO 8859-1' ssh "$@"
(如果要對遠端端點強制執行嚴格的 US-ASCII,請替換
ISO 8859-1
為ASCII
。)隨意命名。
ssh
使用舊字元編碼連接到系統時,請使用此腳本/函式而不是正常命令。