모든 터미널에서 utf-8을 비활성화하시겠습니까?

모든 터미널에서 utf-8을 비활성화하시겠습니까?

이 문제는 다음과 같이 내 Ubuntu 18 시스템과 관련이 있습니다.

% uname -a
Linux myhost.name.net 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

정기적인 시스템 업그레이드 중에 다음 작업이 얼마나 오랫동안 진행되었는지는 모르겠지만 이제 모든 터미널 창이 UTF-8문자를 쓰고 있음을 알 수 있습니다. 모든 터미널 창을 사용 us.ascii하고 싶습니다 . iso-8859-1이것을 설정할 수 있는 곳을 찾을 수 없습니다.

또한 모든 키보드 입력은 과 같은 것 같은데 , 나도 UTF-8되기를 원합니다 .us.asciiiso-8859-1

기본적으로 이 LANG변수는 터미널 창에서 실행하는 모든 셸에서 로 설정되지만 en_US.UTF-8구성 파일에서는 의도적으로 설정하지 않습니다.

내가 아는 한, 이 문제는 xterm, rxvt및 에서 발생하며 urxvt해당 프로그램 중 어느 것도 악용하도록 구성되어 있지 않습니다.UTF-8

나는 달리고 있다 XFCE4. 그것이 어떤 변화를 가져온다면. XFCE4설정에서도 이에 대한 설정을 찾을 수 없습니다 .

us.ascii모든 터미널 창에 항상 또는 가 표시 iso-8859-1되고 모든 키보드 입력도 us.ascii또는 가 되도록 시스템을 재설정하는 방법을 제안할 수 있는 사람이 있습니까 iso-8859-1?

매우 감사합니다.

답변1

대부분의 최신 Linux 소프트웨어는 로캘 환경 변수에서 사용되는 문자 집합을 결정하므로 특정 설정을 찾을 수 없습니다. locale전체 현재 로케일을 보려면 이 명령을 사용하십시오 .

확인해보셨나요 /etc/default/locale? 시스템의 기본 로케일을 설정하는 데 사용되는 표준 데비안 구성 파일입니다. UTF-8 대신 iso-8859-1을 사용하려면 다음을 수행해야 합니다.

  • en_US ISO-8859-1라인이 주석 처리되지 않았는지 확인 하고 그렇지 않은 경우 /etc/locale.gen파일을 편집한 후 실행하십시오 .sudo locale-gen
  • LANG로케일 변수를 LC_CTYPE(또는 적어도) en_US.iso88591올바른 형식으로(또는 에 따라 locale -a | grep en_US) 지정하십시오.

Ubuntu 18 UTF-8 시스템에서 UTF-8 대신 ISO-8859-1을 사용하는 이전 시스템으로 연결하는 것이 문제인 경우 전체 연결을 다운그레이드하는 대신 나가는 연결에 문자 매핑 레이어를 삽입하는 것을 고려할 수 있습니다. 레거시 코딩을 처리하는 시스템. 다음과 같이 작은 스크립트(또는 쉘 함수)를 만드십시오.

#!/bin/sh
luit -encoding 'ISO 8859-1' ssh "$@"

(원격 엔드포인트에 엄격한 US-ASCII를 적용하려면 ISO 8859-1로 바꾸세요 ASCII.)

원하는 대로 이름을 지정하세요. ssh이전 문자 인코딩을 사용하여 시스템에 연결할 때 일반 명령 대신 이 스크립트/함수를 사용하십시오.

관련 정보