Command-Line
more、cat 和 less 支持的字元編碼
我有一個根據以下編碼的文本文件
file
:ISO-8859 文本,帶有 CRLF 行終止符
此文件包含帶有重音符號的法語文本。我的 shell 能夠顯示重音,並且
emacs
在控制台模式下能夠正確顯示這些重音。我的問題是
more
,工具無法正確顯示此文件。我猜這意味著這些工具不支持這個字元編碼集。這是真的?這些工具支持哪些字元編碼?cat``less
您的外殼可以顯示重音等,因為它可能使用 UTF-8。由於有問題的文件是不同的編碼,
less
more
並且cat
試圖將其讀取為 UTF 並失敗。您可以檢查您目前的編碼echo $LANG
您有兩個選擇,您可以更改預設編碼,或將文件更改為 UTF-8。要更改編碼,請打開終端並鍵入
export LANG="fr_FR.ISO-8859"
例如:
$ echo $LANG en_US.UTF-8 $ cat foo.txt J'ai mal � la t�te, c'est chiant! $ export LANG="fr_FR.ISO-8859" $ xterm <-- open a new terminal $ cat foo.txt J'ai mal à la tête, c'est chiant!
如果您正在使用
gnome-terminal
或類似的,您可能需要啟動編碼,例如terminator
右鍵點擊和:對於
gnome-terminal
:您的另一個(更好)選擇是更改文件的編碼:
$ cat foo.txt J'ai mal � la t�te, c'est chiant! $ iconv -f ISO-8859-1 -t UTF-8 foo.txt > bar.txt $ cat bar.txt J'ai mal à la tête, c'est chiant!