Почему специальный символ экранирован в командной строке?

Почему специальный символ экранирован в командной строке?

У меня есть сервер AlmaLinux, в котором я борюсь с некоторыми проблемами кодировки. Например, если я введу это в CLI:

mkdir asdfü
ls ./

я получил 'asdf'$'\303\274'

Как я могу это исправить?

решение1

Похоже, что ваш терминал настроен на ввод/вывод в кодировке UTF-8, но ваш сеанс оболочки находится в локали с другим набором символов, в котором байты 0303 и 0274 (восьмеричный) по отдельности или в комбинации не образуют допустимый печатный символ. Скорее всего, эта локаль — C/ POSIX(локаль по умолчанию, если она не определена или определена неправильно), а набор символов — ASCII (он же ANSI_X3.4-1968), который не определяет ни одного символа для байтов 0303 и 0274 (любой байт выше 0177).

locale charmap

Сообщит вам, какая кодировка используется в локали.

locale

Покажет вам конфигурацию локали.

Вероятно, вам захочется сменить $LANGлокаль хотя бы на ту, где кодировка UTF-8 соответствует вашим предпочтениям.

locale -a

Выдаст вам список доступных локалей на сервере.

Связанный контент