SSH 및 문자 인코딩

SSH 및 문자 인코딩

sshVPS에 들어가면 화면 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 값에 문자 집합이 표시되지 않는 방식에 유의하세요.)

관련 정보