명령줄에서 특수 문자가 이스케이프되는 이유는 무엇입니까?

명령줄에서 특수 문자가 이스케이프되는 이유는 무엇입니까?

인코딩 문제가 있는 AlmaLinux 서버가 있습니다. 예를 들어, CLI에 다음을 입력하면:

mkdir asdfü
ls ./

알겠어요 'asdf'$'\303\274'

이 문제를 어떻게 해결할 수 있나요?

답변1

터미널이 UTF-8 인코딩된 입력/출력에 대해 구성된 것 같지만 쉘 세션이 다른 문자 세트를 사용하는 로케일에 있습니다. 여기서 바이트 0303 및 0274(8진수) 단독 또는 결합은 유효한 문자 세트를 형성하지 않습니다. 대부분의 경우 로케일은 C/ POSIX(정의되지 않았거나 잘못 정의된 경우의 기본 로케일)이고 문자 세트는 ASCII(ANSI_X3.4-1968이라고도 함)이며 바이트 0303 또는 0274(모든 바이트 위에 0177)가 없습니다. 성격.

locale charmap

해당 로캘에서 어떤 문자 집합이 사용되는지 알려줍니다.

locale

로캘 구성이 표시됩니다.

최소한 $LANG문자 세트를 UTF-8로 변경하고 로케일 기본 설정과 일치해야 할 수도 있습니다.

locale -a

서버에서 사용 가능한 로케일 목록이 제공됩니다.

관련 정보