為什麼命令列中的特殊字元會被轉義

為什麼命令列中的特殊字元會被轉義

我有一個 AlmaLinux 伺服器,我在其中遇到一些編碼問題。例如,如果我在 CLI 中輸入:

mkdir asdfü
ls ./

我明白了 'asdf'$'\303\274'

我怎樣才能解決這個問題?

答案1

看起來您的終端已配置為以 UTF-8 編碼的輸入/輸出,但您的 shell 會話處於具有不同字元集的語言環境中,其中位元組 0303 和 0274(八進位)單獨或組合不形成有效的可列印字元。最有可能的是,該語言環境是C/ POSIX(未定義或定義不正確時的預設語言環境),字元集是ASCII(又稱ANSI_X3.4-1968),它沒有為位元組0303 或0274(0177 以上的任何位元組)定義任何字元。

locale charmap

會告訴您區域設定中使用什麼字元集。

locale

將向您顯示區域設定配置。

您可能需要至少變更$LANG為字元集為 UTF-8 並符合您的偏好的區域設定。

locale -a

將為您提供伺服器上可用區域設定的清單。

相關內容