为什么命令行中的特殊字符会被转义

为什么命令行中的特殊字符会被转义

我有一个 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

将为您提供服务器上可用区域设置的列表。

相关内容