터미널의 문자 인코딩을 얻는 방법


답변:


108

터미널은 환경 변수 를 사용하여 사용할 문자 집합 을 결정하므로 해당 변수를보고 결정할 수 있습니다.

echo $LC_CTYPE

또는

echo $LANG

4
이러한 환경 변수는 I / O 용 터미널을 사용하는 응용 프로그램에서 사용됩니다. 터미널 에뮬레이터 자체는 그것들에 대해 전혀 알지 못하며 현재 유효한 문자 인코딩은 에뮬레이터 프로그램 (GNOME 터미널의 경우 libvte 클래스 내부의 데이터 멤버) 내의 설정입니다.
JdeBP

여기에 제시된 변수의 순서는 좋지 않습니다. 보다 완전한 솔루션은 다음과 같습니다. echo $ {LC_ALL :-$ {LC_CTYPE :-$ {LANG}}}. 다시 말하지만 설정되는 변수가 유효하다는 보장이 아니므로 locale프로그램을 고수해야합니다 (여기 다른 답변에서 볼 수 있음).
Mike Frysinger

@JdeBP가 말했듯이 터미널은 인코딩을 결정하기 위해 환경 변수를 사용 하지 않습니다locale . 그러나 터미널은 상호 작용하는 응용 프로그램이 locale환경 변수 를 설정하여 인코딩을 알 수 있도록 할 수 있습니다 . 예를 들어, 맥 OS에 당신은 터미널 인코딩을 선택할 수 있습니다 선택적으로 설정 locale터미널 시작시 환경 변수를 Terminal> Preferences> Profiles> Advanced.
마계로

97

locale 인수가없는 명령은 LANGUAGE를 제외한 모든 관련 환경 변수의 값을 인쇄합니다.

현재 인코딩의 경우 :

locale charmap

사용 가능한 로케일 :

locale -a

사용 가능한 인코딩 :

locale -m

1
이것이 CentOS 시스템에서 나를 위해 일한 것입니다. 현재 언어 설정에 따른 시스템 인코딩을 보여줍니다. 해당 기계에 도달하는 데 사용되는 터미널 설정은 사용중인 클라이언트의 다른 스토리와 기능입니다.
Phil DD

45

인코딩 및 언어 확인 :

$ echo $LC_CTYPE
ISO-8859-1
$ echo $LANG
pt_BR

모든 언어 얻기 :

$ locale -a

pt_PT.utf8로 변경합니다.

$ export LC_ALL=pt_PT.utf8 
$ export LANG="$LC_ALL"

16

Python이있는 경우 :

python -c "import sys; print(sys.stdout.encoding)"

1
위의 모든 오퍼링 중에서 Slackware64 v. 14.2 상자에서 작동 한 유일한 제안은이 파이썬 스 니펫이었습니다. 감사!
Thomas Altfather Good

6

내가 아는 한, 아닙니다.

에서 정황 표시 $LC_CTYPE, locale이러한 힘은 고혹적 인 것처럼 보이지만이 완전히 터미널 응용 프로그램을 인코딩 (실제로 에뮬레이터)에서 분리 된 화면에 문자를 표시 할 때 사용되는 일이 있습니다.

인코딩을 확실히 감지하는 유일한 방법은 인코딩에만있는 것을 출력하는 것입니다. 예를 들어 ä스크린 샷을 찍고 해당 이미지를 분석하고 출력 문자가 올바른지 확인합니다.

아니, 안타깝게도 불가능합니다.


0

현재 로케일 정보를 보려면 locale명령을 사용하십시오 . 다음은 RHEL 7.8의 예입니다.

[usr@host ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.