LMDE2/MATE 로캘 문자 집합이 일치하지 않습니다.

LMDE2/MATE 로캘 문자 집합이 일치하지 않습니다.

저는 Linux Mint Debian Edition 2 "Betsy"(사용 가능한 모든 업데이트가 적용된 RC로 설치됨)와 MATE 데스크탑 환경을 갖춘 컴퓨터를 가지고 있습니다. 내 문제는 일부 응용 프로그램에서 내 모국어(폴란드어)에서 사용되는 특수 문자가 포함되어 있기 때문에 일부 폴더와 파일이 올바르게 처리되지 않는다는 것입니다.

더 구체적으로 말하면, 일반적으로 메이트 터미널, Pluma(MATE 텍스트 편집기) 및 caja(파일 관리자)에서 Alt+문자로 입력되는 폴란드어 특수 문자 및 아마도 방금 확인하지 않은 몇 가지 문자가 무시됩니다(인쇄된 문자가 없음). - Pluma 및 Caja에서는) 또는 물음표(메이트 터미널에서)로 대체됩니다. 메이트 터미널에서 실행할 때 vim도 특수 문자를 물음표로 바꾸는 방식으로 실행됩니다.

나는 이것이 시스템 전체의 문제라고 생각하지 않습니다. 왜? 왜냐하면 다른 tty로 전환하여 터미널에 이러한 특수 문자를 입력하려고 하면 아무런 문제가 발생하지 않기 때문입니다. mate-terminal에 의해 표시된 폴더는 zdj?cia다른 tty에 표시된 폴더로 올바르게 레이블이 지정됩니다 zdjęcia. vim은 터미네이터에서 실행될 때 아무런 문제도 일으키지 않기 때문에 문제는 MATE와 관련된 것 같습니다.

또한 다음과 같은 방법으로 디버깅을 시도했습니다. mate-terminal에서 홈 디렉터리(폴란드어 특수 문자가 포함된 파일 및 디렉터리 포함)를 나열하고 출력을 ls테스트 파일로 리디렉션했습니다. 그런 다음 다른 tty로 전환하고 cat파일을 테스트했습니다. 문자가 올바르게 인쇄되었습니다.

나는 그것을 시도했다 dpkg-reconfigure locales. 언어 팩은 MATE Control Center를 통해 설치되었습니다(그리고 그 과정에서 다시 설치되었습니다).

다음에는 무엇을 시도해야 합니까?

편집하다:

mate-terminal그래픽 환경 에서 :

$ 로케일
로캘: LC_ALL을 기본 로캘로 설정할 수 없습니다. 해당 파일이나 디렉터리가 없습니다.
LANG=en_GB.UTF-8
언어 =
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=\"pl_PL.UTF-8\"
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=\"pl_PL.UTF-8\"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=\"pl_PL.UTF-8\"
LC_NAME=\"pl_PL.UTF-8\"
LC_ADDRESS=\"pl_PL.UTF-8\"
LC_TELEPHONE=\"pl_PL.UTF-8\"
LC_MEASUREMENT=\"pl_PL.UTF-8\"
LC_IDENTIFICATION=\"pl_PL.UTF-8\"
LC_ALL=

tty1(문자 인코딩은 잘 작동함):

$ 로케일
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=

편집하다:

grep -Rs pl_PL /etc ~/.?*"바이너리 파일 x 일치 패턴"을 제거하고 파이핑하면 다음이 생성됩니다 sort | uniq.

/etc/default/locale
/etc/locale.alias
/etc/locale.gen
/etc/mdm/locale.conf
/홈/마르타/../marta/.bash_history
/home/marta/../marta/.config/user-dirs.locale
/home/marta/../marta/.linuxmint/mintMenu/apt.cache
/home/marta/../marta/.pam_environment
/home/marta/../marta/.xsession-errors
/home/marta/.bash_history
/home/marta/.config/user-dirs.locale
/home/marta/.linuxmint/mintMenu/apt.cache
/home/marta/.pam_environment
/home/marta/.xsession-errors

예, 이 컴퓨터는 실제로 내 것이 아니지만 괜찮습니다 :)

또 다른 편집:

로캘 설정이 포함된 파일 내용:

$ cat/etc/default/locale
LANG="en_GB.UTF-8"
LANGUAGE="en_GB:en"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
$ 고양이 /home/marta/.pam_environment
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME=en_GB.UTF-8
LC_MONETARY="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
$ 고양이 /home/marta/.config/user-dirs.locale
pl_PL

답변1

LC_ 변수의 값이 큰따옴표로 묶인 .pam_environment 파일이 있을 수 있습니다.

# WRONG
LC_TIME="en_US.UTF-8"

대신 다음과 같아야 합니다(따옴표 제외).

LC_TIME=en_US.UTF-8

따라서 .pam_environment 파일을 삭제하거나

mv ~/.pam_environment ~/.pam_environment.off

또는 값 주위의 큰따옴표를 제거하도록 편집하세요.

perl -i.bak -pe 's/"//g' ~/.pam_environment

자세한 내용은 다음을 참조하세요. "생성된 로캘 파일에는 큰따옴표가 포함되어서는 안 됩니다." Github의 linuxmint/mintlocale에서

관련 정보