터미널(st)에 문자가 올바르게 표시되지 않습니다.

터미널(st)에 문자가 올바르게 표시되지 않습니다.

터미널에 독일어 움라우트( ä, , )를 입력하면(저는 st를 사용하고 있으며 Arch Linux에 있음) 표시만 됩니다. ö로캘이 올바르게 설정된 것 같습니다.ü$XTERMst-256color<ffffffff>

의 출력은 locale다음과 같습니다

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de-DE.UTF-8
LC_CTYPE=de-DE.UTF-8
LC_NUMERIC="de-DE.UTF-8"
LC_TIME="de-DE.UTF-8"
LC_COLLATE="de-DE.UTF-8"
LC_MONETARY="de-DE.UTF-8"
LC_MESSAGES="de-DE.UTF-8"
LC_PAPER="de-DE.UTF-8"
LC_NAME="de-DE.UTF-8"
LC_ADDRESS="de-DE.UTF-8"
LC_TELEPHONE="de-DE.UTF-8"
LC_MEASUREMENT="de-DE.UTF-8"
LC_IDENTIFICATION="de-DE.UTF-8"
LC_ALL=

나는 locale.conf단지 설정

LANG="de-DE.UTF-8"
LC_CTYPE="de-DE.UTF-8"

나는 locale.gen코멘트가 없습니다 de-DE.UTF-8. 무엇이 잘못될 수 있나요?

답변1

실제 로캘 이름에는밑줄언어 코드와 국가 코드 사이, 즉 다음과 같아야 locale.conf합니다.

LANG="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"

-현재는 밑줄( ) 대신 빼기 기호( )를 사용합니다 _. 로케일 사양이 유효하지 않기 때문에 시스템은 POSIX 로케일과 US-ASCII 문자 세트로만 대체됩니다.

LANG변수는 다른 모든 로케일의 기본값을 설정하므로 그냥 설정하십시오.

LANG=de_DE.UTF-8

변수를 사용하여 특정 범주를 재정의 LC_*하지 않는 한 모든 범주별 로케일 변수를 동일한 값으로 설정하는 것과 같습니다 .LC_*

따라서 설정하면 해당 설정이 이미 새 기본값으로 설정되어 있으므로 LANG=de_DE.UTF-8필요하지 않습니다 . 그러나 번역된 오류 메시지가 마음에 들지 않고 영어로 유지하려는 경우 LANG 값을 설정하여 LC_MESSAGES 범주만 재정의할 수 있습니다.LC_CTYPE=de_DE.UTF-8LANGLC_CTYPELC_MESSAGES=en_US.UTF-8

명령 출력에도 이 내용이 반영됩니다. 현재 설정과 동일한(잘못된) 값 locale으로 설정된 모든 범주별 변수가 표시됩니다 .LANG

LC_ALL모든 로캘에 대한 마스터 재정의입니다. 현지화의 영향을 받을 수 있는 명령 출력을 구문 분석하는 일부 파이프라인에서 가장 자주 볼 수 있습니다. 사용자가 사용하는 로케일에 관계없이 스크립트 작성자가 해당 특정 로케일에 대한 출력 구문 분석만 디자인하면 되는 파이프라인에 접두어를 붙이 LC_ALL=POSIX거나 보장합니다.LC_ALL=en_US.UTF-8

관련 정보