이 문제는 다음과 같이 내 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.ascii
iso-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
이전 문자 인코딩을 사용하여 시스템에 연결할 때 일반 명령 대신 이 스크립트/함수를 사용하십시오.