ssh
VPS에 들어가면 화면 irssi
에서 실행됩니다. 누군가 유니코드 문자(예: © 또는 €)를 보낼 때 irssi
세션 화면을 통해 사용할 때 쓰레기가 표시됩니다 ssh
. irssi의 프록시 모듈을 사용 하여 irssi
내 로컬 컴퓨터에서 실행 중인 irssi의 모듈에 연결하면 올바르게 표시됩니다.
마찬가지로 VPS(오프 스크린)에서 ghci를 실행하고 이러한 문자 중 하나를 입력하면 충돌이 발생합니다.
따라서 SSH 또는 시스템 설정에서 VPS에 연결할 때 일종의 문자 인코딩 문제가 있는 것 같습니다.
이 문제의 원인을 어떻게 파악하고 해결할 수 있나요?
세부 사항:
클라이언트 시스템
- 아치 리눅스 x64
- UTF-8 인코딩
VPS 시스템
- 우분투 서버 10.04
- 알 수 없는 인코딩을 사용하세요. 이것을 어떻게 찾나요? (/etc/rc.conf에서 Arch를 찾으면 됩니다)
답변1
이 locale
명령을 실행하면 로케일에 대한 정보가 제공됩니다. 문자 인코딩은 설정에 따라 제공됩니다 LC_CTYPE
.
우분투에서는 기본 로케일이 /etc/default/locale
. VPS LC_CTYPE
에서 설정 하여 문자 인코딩을 변경할 수 있습니다 .~/.profile
export LC_CTYPE=en_US.UTF-8
로케일이 사용 가능한지 확인해야 합니다 en_US.UTF-8
. Ubuntu는 요청된 로케일에 대한 로케일 데이터만 생성합니다. 이 패키지를 설치하면 모든 영어 로캘을 사용할 수 있습니다 language-pack-en-base
. 수동으로 생성을 요청할 수 있습니다.
sudo locale-gen en
특정 로케일이 설치되었는지 확인하기 위해 항목을 추가할 수도 있습니다 /var/lib/locales/supported.d/local
(예: 줄 추가 en_US.UTF-8 UTF-8
).
답변2
실제로 LC_CTYPE에 제공된 값은 로케일입니다.이름. 이름에 문자 세트 인코딩을 포함하는 것이 관례이지만 필수는 아닙니다.
그러나 문자 세트를 정확히 알고 싶다면 명령은 입니다 locale -k charmap
.
~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"
(위의 LC_TYPE 값에 문자 집합이 표시되지 않는 방식에 유의하세요.)